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