Module: D13n::Metric::AppHttpMetric::Namespace

Included in:
In, Out
Defined in:
lib/d13n/metric/metrics/app_http_metric.rb

Instance Method Summary collapse

Instance Method Details

#endpoint_metric(request, type) ⇒ Object



27
28
29
30
31
32
33
34
35
36
# File 'lib/d13n/metric/metrics/app_http_metric.rb', line 27

def endpoint_metric(request, type)
  service, endpoint = get_service_endpoint(request)
  items = []
  items << prefix
  items << 'endpoint'
  items << service
  items << endpoint
  items << type.to_s
  items.join('.')
end

#endpoint_status_metric(request, response) ⇒ Object



61
62
63
# File 'lib/d13n/metric/metrics/app_http_metric.rb', line 61

def endpoint_status_metric(request,response)
  "#{service_metric(request,:statue)}.#{response.code}"
end

#get_service_endpoint(request) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/d13n/metric/metrics/app_http_metric.rb', line 9

def get_service_endpoint(request)
  service = Helper.service_for(request.uri)
  endpoint = Helper.endpoint_for(request.uri)
  raise ServiceNotFound.new "No matched service for #{request.uri.to_s}" if service.nil?
  raise EndpointNotFound.new "No matched endpoint for #{request.uri.to_s}" if endpoint.nil?
  [service, endpoint]
end

#http_basic_tags(request) ⇒ Object



38
39
40
41
42
43
44
45
46
47
# File 'lib/d13n/metric/metrics/app_http_metric.rb', line 38

def http_basic_tags(request)
  service, endpoint = get_service_endpoint(request)
  tags = []
  tags << "idc:#{D13n.idc_name}"
  tags << "env:#{D13n.idc_env}"
  tags << "app:#{D13n.app_name}"
  tags << "srv:#{service}"
  tags << "endpoint:#{endpoint}"
  tags
end

#http_error_tags(response) ⇒ Object



55
56
57
58
59
# File 'lib/d13n/metric/metrics/app_http_metric.rb', line 55

def http_error_tags(response)
  tags = http_basic_tags
  tags << "error:#{response.class.name.underscore}"
  tags
end

#http_status_tags(request, response) ⇒ Object



49
50
51
52
53
# File 'lib/d13n/metric/metrics/app_http_metric.rb', line 49

def http_status_tags(request, response)
  tags = http_basic_tags(request)
  tags << "status:#{response.code}"
  tags
end

#service_error_metric(request, response) ⇒ Object



65
66
67
# File 'lib/d13n/metric/metrics/app_http_metric.rb', line 65

def service_error_metric(request,response)
  "#{service_metric(request,:error)}.#{response.class.name.underscore}"
end

#service_metric(request, type) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/d13n/metric/metrics/app_http_metric.rb', line 17

def service_metric(request,type)
  service, endpoint = get_service_endpoint(request)
  items = []
  items << prefix
  items << 'service'
  items << service
  items << type.to_s
  items.join('.')
end