lib/prometheus/api_client/cadvisor.rb in prometheus-api-client-0.4.2 vs lib/prometheus/api_client/cadvisor.rb in prometheus-api-client-0.5.1

- old
+ new

@@ -34,24 +34,36 @@ # A client with special labels for node cadvisor metrics class Node < CadvisorClient def initialize(options = {}) instance = options[:instance] - @labels = "job=\"kubernetes-cadvisor\",instance=\"#{instance}\"," \ - 'id="/"' + # if no instance is given, assume we want data on all nodes + @labels = if instance + 'job="kubernetes-cadvisor",id="/",' \ + "instance=\"#{instance}\"" + else + 'job="kubernetes-cadvisor",id="/"' + end + super(options) end end # A client with special labels for pod cadvisor metrics class Pod < CadvisorClient def initialize(options = {}) pod_name = options[:pod_name] namespace = options[:namespace] || 'default' - @labels = "job=\"kubernetes-cadvisor\",namespace=\"#{namespace}\"," \ - "pod_name=\"#{pod_name}\",container_name=\"POD\"" + # if no pod_name is given, assume we want data on all pods + @labels = if pod_name + 'job="kubernetes-cadvisor",container_name="POD",' \ + "pod_name=\"#{pod_name}\",namespace=\"#{namespace}\"" + else + 'job="kubernetes-cadvisor",container_name="POD"' + end + super(options) end end # A client with special labels for container cadvisor metrics @@ -59,11 +71,18 @@ def initialize(options = {}) container_name = options[:container_name] pod_name = options[:pod_name] namespace = options[:namespace] || 'default' - @labels = "job=\"kubernetes-cadvisor\",namespace=\"#{namespace}\"," \ - "pod_name=\"#{pod_name}\",container_name=\"#{container_name}\"" + # if no container_name is given, assume we want data on all containers + @labels = if container_name + 'job="kubernetes-cadvisor",' \ + "namespace=\"#{namespace}\",pod_name=\"#{pod_name}\"," \ + "container_name=\"#{container_name}\"" + else + 'job="kubernetes-cadvisor",container_name!="POD"' + end + super(options) end end end end