def test_no_metadata(self): families = text_string_to_metric_families("""a 1 # EOF """) metric_family = Metric("a", "", "untyped") metric_family.add_sample("a", {}, 1) self.assertEqual([metric_family], list(families))
def collect(self): while True: try: all_releases = self.tiller.list_releases() break except Exception as e: print(e) continue metric = Metric('helm_chart_info', 'Helm chart information', 'gauge') chart_count = Counter([ (release.chart.metadata.name, release.name, release.chart.metadata.version, release.chart.metadata.appVersion, release.namespace, _STATUS_CODE.values_by_number[release.info.status.code].name) for release in all_releases ]) for chart in chart_count: metric.add_sample('helm_chart_info', value=chart_count[chart], labels={ "chart": chart[0], "release": chart[1], "version": chart[2], "appVersion": chart[3], "namespace": chart[4], "status": chart[5] }) yield metric
def collect(self): while True: try: all_releases = self.tiller.list_releases() break except Exception as e: print(e) continue metric = Metric('helm_chart_info', 'Helm chart information', 'gauge') for release in all_releases: name = release.chart.metadata.name version = release.chart.metadata.version metric.add_sample('helm_chart_info', value=1, labels={ "name": name, "version": version }) yield metric
def collect(self): while True: try: all_releases = self.tiller.list_releases() break except Exception as e: print(e) continue metric = Metric('helm_chart_info', 'Helm chart information', 'gauge') chart_count = Counter([ (release.chart.metadata.name, release.chart.metadata.version, release.namespace) for release in all_releases ]) for chart in chart_count: metric.add_sample('helm_chart_info', value=chart_count[chart], labels={ "name": chart[0], "version": chart[1], "namespace": chart[2] }) yield metric
def collect(self): '''Collect Prometheus Metrics''' linky_frame = self.teleinfo() labels = {'job': LINKY_EXPORTER_NAME} metrics = [] # Filter Metrics & Labels for key, value in linky_frame.items(): description = [i['description'] for i in LINKY_FRAME if key == i['name']][0] metric_type = [i['type'] for i in LINKY_FRAME if key == i['name']][0] if metric_type in ['counter', 'gauge', 'histogram', 'summary']: metrics.append({'name': f'linky_{key.lower()}', 'value': int(value), 'description': description, 'type': metric_type}) else: labels[key.lower()] = value # Return Prometheus Metrics for metric in metrics: prometheus_metric = Metric(metric['name'], metric['description'], metric['type']) prometheus_metric.add_sample(metric['name'], value=metric['value'], labels=labels) yield prometheus_metric