skylight: add service probe
This commit is contained in:
parent
162b5b0cca
commit
9b0fb64ba1
|
@ -11,6 +11,7 @@ class Travis::Api::App
|
||||||
require 'skylight'
|
require 'skylight'
|
||||||
require 'travis/api/app/skylight/dalli_probe'
|
require 'travis/api/app/skylight/dalli_probe'
|
||||||
require 'travis/api/app/skylight/redis_probe'
|
require 'travis/api/app/skylight/redis_probe'
|
||||||
|
require 'travis/api/app/skylight/service_probe'
|
||||||
register ::Skylight::Sinatra
|
register ::Skylight::Sinatra
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
51
lib/travis/api/app/skylight/service_probe.rb
Normal file
51
lib/travis/api/app/skylight/service_probe.rb
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
require 'skylight'
|
||||||
|
require 'travis/api/app'
|
||||||
|
|
||||||
|
class Travis::Api::App
|
||||||
|
module Skylight
|
||||||
|
class ServiceProbe
|
||||||
|
class ServiceProxy < Delegator
|
||||||
|
def initialize(key, service)
|
||||||
|
super(service)
|
||||||
|
@key = key
|
||||||
|
@service = service
|
||||||
|
end
|
||||||
|
|
||||||
|
def __getobj__
|
||||||
|
@service
|
||||||
|
end
|
||||||
|
|
||||||
|
def __setobj__(obj)
|
||||||
|
@service = obj
|
||||||
|
end
|
||||||
|
|
||||||
|
def run(*args)
|
||||||
|
opts = {
|
||||||
|
category: "api.service.#{@key}",
|
||||||
|
title: "Service #{@key}",
|
||||||
|
annotations: {
|
||||||
|
service: @key.to_s
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
::Skylight.instrument(opts) do
|
||||||
|
@service.run(*args)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def install
|
||||||
|
Travis::Services::Helpers.class_eval do
|
||||||
|
alias service_without_sk service
|
||||||
|
|
||||||
|
def service(key, *args)
|
||||||
|
s = service_without_sk(key, *args)
|
||||||
|
ServiceProxy.new(key, s)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
::Skylight::Probes.register("Travis::Services::Helpers", "travis/services/helpers", ServiceProbe.new)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue
Block a user