Code Monkey home page Code Monkey logo

exporter-merger's Introduction

Warning

This repository has been archived because it has been obsoleted by ServiceMonitor and PodMonitor. See the Prometheus Operator Documentation for details.

exporter-merger

Build Status Go Report Card License GitHub Release

Images are available on:


Merges Prometheus metrics from multiple sources.

Development Status exporter-merger is in an early development phase. Expect incompatible changes and abandoment at any time.

But Why?

prometheus/prometheus#3756

Usage

exporter-merger needs a configuration file. Currently, nothing but URLs are accepted:

exporters:
  - url: http://localhost:9100/metrics
  - url: http://localhost:9101/metrics

To start the exporter:

exporter-merger --config-path merger.yaml --listen-port 8080

Environment variables

Alternatively configuration can be passed via environment variables, here is relevant part of exporter-merger -h output:

--listen-port int      Listen port for the HTTP server. (ENV:MERGER_PORT) (default 8080)
--url stringSlice      URL to scrape. Can be speficied multiple times. (ENV:MERGER_URLS,space-seperated)

Kubernetes

The exporter-merger is supposed to run as a sidecar. Here is an example config with nginx-exporter:

apiVersion: apps/v1
kind: Deployment

metadata:
  name: my-nginx
  labels:
    app: my-nginx

spec:
  selector:
    matchLabels:
      app: my-nginx

  template:
    metadata:
      name: my-nginx
      labels:
        app: my-nginx
      annotations:
        prometheus.io/scrape: "true"
        prometheus.io/port: "8080"

    spec:
      containers:
        - name: "nginx"
          image: "my-nginx" # nginx image with modified config file

          volumeMounts:
            - name: mtail
              mountPath: /var/log/nginx/mtail

        - name: nginx-exporter
          image: quay.io/rebuy/nginx-exporter:v1.1.0
          ports:
            - containerPort: 9397
          env:
            - name: NGINX_ACCESS_LOGS
              value: /var/log/nginx/mtail/access.log
            - name: NGINX_STATUS_URI
              value: http://localhost:8888/nginx_status
          volumeMounts:
            - name: mtail
              mountPath: /var/log/nginx/mtail

        - name: exporter-merger
          image: quay.io/jkreileder/exporter-merger:v0.4.4
          ports:
            - name: metrics
              containerPort: 8080
          env:
            # space-separated list of URLs
            - name: MERGER_URLS
              value: http://localhost:9000/prometheus/metrics http://localhost:9397/metrics
          # default exposed port, change only if need other than default 8080
          # - name: MERGER_PORT
          #   value: 8080
          livenessProbe:
            httpGet:
              path: /alive
              port: metrics
          readinessProbe:
            httpGet:
              path: /alive
              port: metrics

Planned Features

  • Allow transforming of metrics from backend exporters.
    • eg add a prefix to the metric names
    • eg add labels to the metrics
  • Allow dynamic adding of exporters.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.