Пример #1
0
    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))
Пример #2
0
 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
Пример #3
0
 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
Пример #4
0
 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
Пример #5
0
    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