From 6023dc356a421462a1d00333b5893116e64cfd33 Mon Sep 17 00:00:00 2001 From: Patricio Cano Date: Tue, 14 Jun 2016 16:46:53 +0000 Subject: Revert "Added API endpoint for Sidekiq Metrics" This reverts commit 06e0ef07bcb92925e6819cbe1e33cdcf645b736b --- doc/api/README.md | 1 - doc/api/sidekiq_metrics.md | 152 ------------------------------ lib/api/api.rb | 1 - lib/api/sidekiq_metrics.rb | 90 ------------------ spec/requests/api/sidekiq_metrics_spec.rb | 40 -------- 5 files changed, 284 deletions(-) delete mode 100644 doc/api/sidekiq_metrics.md delete mode 100644 lib/api/sidekiq_metrics.rb delete mode 100644 spec/requests/api/sidekiq_metrics_spec.rb diff --git a/doc/api/README.md b/doc/api/README.md index 6042ef7637c..e3fc5a09f21 100644 --- a/doc/api/README.md +++ b/doc/api/README.md @@ -31,7 +31,6 @@ following locations: - [Services](services.md) - [Session](session.md) - [Settings](settings.md) -- [Sidekiq Metrics](sidekiq_metrics.md) - [System Hooks](system_hooks.md) - [Tags](tags.md) - [Users](users.md) diff --git a/doc/api/sidekiq_metrics.md b/doc/api/sidekiq_metrics.md deleted file mode 100644 index de627c1a969..00000000000 --- a/doc/api/sidekiq_metrics.md +++ /dev/null @@ -1,152 +0,0 @@ -# Sidekiq Metrics - ->**Note:** This endpoint is only available on GitLab 8.9 and above. - -This API endpoint allows you to retrieve some information about the current state -of Sidekiq, it's jobs, queues, and processes. - -## Get the current Queue Metrics - -List information about all the registered queues, their backlog and their -latency. - -``` -GET /sidekiq/queue_metrics -``` - -```bash -curl -H "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v3/sidekiq/queue_metrics -``` - -Example response: - -```json -{ - "queues": { - "default": { - "backlog": 0, - "latency": 0 - } - } -} -``` - -## Get the current Process Metrics - -List information about all the Sidekiq workers registered to process your queues. - -``` -GET /sidekiq/process_metrics -``` - -```bash -curl -H "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v3/sidekiq/process_metrics -``` - -Example response: - -```json -{ - "processes": [ - { - "hostname": "local.host", - "pid": 5649, - "tag": "gitlab", - "started_at": "2016-06-14T10:45:07.159-05:00", - "queues": [ - "post_receive", - "mailers", - "archive_repo", - "system_hook", - "project_web_hook", - "gitlab_shell", - "incoming_email", - "runner", - "common", - "default" - ], - "labels": [], - "concurrency": 25, - "busy": 0 - } - ] -} -``` - -## Get the current Job Statistics - -List information about the jobs that Sidekiq has performed. - -``` -GET /sidekiq/job_stats -``` - -```bash -curl -H "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v3/sidekiq/job_stats -``` - -Example response: - -```json -{ - "jobs": { - "processed": 2, - "failed": 0, - "enqueued": 0 - } -} -``` - -## Get a compound response of all the previously mentioned metrics - -List all the currently available information about Sidekiq. - -``` -GET /sidekiq/compound_metrics -``` - -```bash -curl -H "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" https://gitlab.example.com/api/v3/sidekiq/compound_metrics -``` - -Example response: - -```json -{ - "queues": { - "default": { - "backlog": 0, - "latency": 0 - } - }, - "processes": [ - { - "hostname": "local.host", - "pid": 5649, - "tag": "gitlab", - "started_at": "2016-06-14T10:45:07.159-05:00", - "queues": [ - "post_receive", - "mailers", - "archive_repo", - "system_hook", - "project_web_hook", - "gitlab_shell", - "incoming_email", - "runner", - "common", - "default" - ], - "labels": [], - "concurrency": 25, - "busy": 0 - } - ], - "jobs": { - "processed": 2, - "failed": 0, - "enqueued": 0 - } -} -``` - diff --git a/lib/api/api.rb b/lib/api/api.rb index 51ddd0dbfc4..6cd909f6115 100644 --- a/lib/api/api.rb +++ b/lib/api/api.rb @@ -59,6 +59,5 @@ module API mount ::API::Licenses mount ::API::Subscriptions mount ::API::Gitignores - mount ::API::SidekiqMetrics end end diff --git a/lib/api/sidekiq_metrics.rb b/lib/api/sidekiq_metrics.rb deleted file mode 100644 index f99cdb7a948..00000000000 --- a/lib/api/sidekiq_metrics.rb +++ /dev/null @@ -1,90 +0,0 @@ -require 'sidekiq/api' - -module API - class SidekiqMetrics < Grape::API - before { authenticated_as_admin! } - - helpers do - def queue_metrics - Sidekiq::Queue.all.each_with_object({}) do |queue, hash| - hash[queue.name] = { - backlog: queue.size, - latency: queue.latency.to_i - } - end - end - - def process_metrics - Sidekiq::ProcessSet.new.map do |process| - { - hostname: process['hostname'], - pid: process['pid'], - tag: process['tag'], - started_at: Time.at(process['started_at']), - queues: process['queues'], - labels: process['labels'], - concurrency: process['concurrency'], - busy: process['busy'] - } - end - end - - def job_stats - stats = Sidekiq::Stats.new - { - processed: stats.processed, - failed: stats.failed, - enqueued: stats.enqueued - } - end - end - - # Get Sidekiq Queue metrics - # - # Parameters: - # None - # - # Example: - # GET /sidekiq/queue_metrics - # - get 'sidekiq/queue_metrics' do - { queues: queue_metrics } - end - - # Get Sidekiq Process metrics - # - # Parameters: - # None - # - # Example: - # GET /sidekiq/process_metrics - # - get 'sidekiq/process_metrics' do - { processes: process_metrics } - end - - # Get Sidekiq Job statistics - # - # Parameters: - # None - # - # Example: - # GET /sidekiq/job_stats - # - get 'sidekiq/job_stats' do - { jobs: job_stats } - end - - # Get Sidekiq Compound metrics. Includes all previous metrics - # - # Parameters: - # None - # - # Example: - # GET /sidekiq/compound_metrics - # - get 'sidekiq/compound_metrics' do - { queues: queue_metrics, processes: process_metrics, jobs: job_stats } - end - end -end \ No newline at end of file diff --git a/spec/requests/api/sidekiq_metrics_spec.rb b/spec/requests/api/sidekiq_metrics_spec.rb deleted file mode 100644 index e65890167bb..00000000000 --- a/spec/requests/api/sidekiq_metrics_spec.rb +++ /dev/null @@ -1,40 +0,0 @@ -require 'spec_helper' - -describe API::SidekiqMetrics, api: true do - include ApiHelpers - - let(:admin) { create(:user, :admin) } - - describe 'GET sidekiq/*' do - it 'defines the `queue_metrics` endpoint' do - get api('/sidekiq/queue_metrics', admin) - - expect(response.status).to eq(200) - expect(json_response).to be_a Hash - end - - it 'defines the `process_metrics` endpoint' do - get api('/sidekiq/process_metrics', admin) - - expect(response.status).to eq(200) - expect(json_response['processes']).to be_an Array - end - - it 'defines the `job_stats` endpoint' do - get api('/sidekiq/job_stats', admin) - - expect(response.status).to eq(200) - expect(json_response).to be_a Hash - end - - it 'defines the `compound_metrics` endpoint' do - get api('/sidekiq/compound_metrics', admin) - - expect(response.status).to eq(200) - expect(json_response).to be_a Hash - expect(json_response['queues']).to be_a Hash - expect(json_response['processes']).to be_an Array - expect(json_response['jobs']).to be_a Hash - end - end -end \ No newline at end of file -- cgit v1.2.1