All Projects → tg44 → OctoPrint-Prometheus-Exporter

tg44 / OctoPrint-Prometheus-Exporter

Licence: MIT license
An octoprint plugin for prometheus compatible metrics endpoint

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to OctoPrint-Prometheus-Exporter

Query Exporter
Export Prometheus metrics from SQL queries
Stars: ✭ 166 (+361.11%)
Mutual labels:  prometheus-exporter
Ssl exporter
Exports Prometheus metrics for SSL certificates
Stars: ✭ 211 (+486.11%)
Mutual labels:  prometheus-exporter
ansible-snmp-exporter
Provision SNMP metrics exporter for prometheus monitoring
Stars: ✭ 18 (-50%)
Mutual labels:  prometheus-exporter
Prometheus Es Exporter
Prometheus Elasticsearch Exporter
Stars: ✭ 184 (+411.11%)
Mutual labels:  prometheus-exporter
Oracledb exporter
Prometheus Oracle database exporter.
Stars: ✭ 209 (+480.56%)
Mutual labels:  prometheus-exporter
Github Exporter
Prometheus exporter for github metrics
Stars: ✭ 231 (+541.67%)
Mutual labels:  prometheus-exporter
Minecraft Prometheus Exporter
A Bukkit plugin which exports minecraft server stats to Prometheus
Stars: ✭ 150 (+316.67%)
Mutual labels:  prometheus-exporter
HttpClientMock
Library for mocking Apache HttpClient.
Stars: ✭ 41 (+13.89%)
Mutual labels:  hactoberfest
Aliyun Exporter
Prometheus exporter for Alibaba Cloud Monitor
Stars: ✭ 210 (+483.33%)
Mutual labels:  prometheus-exporter
Php Fpm exporter
A prometheus exporter for PHP-FPM.
Stars: ✭ 251 (+597.22%)
Mutual labels:  prometheus-exporter
Blackbox exporter
Blackbox prober exporter
Stars: ✭ 2,633 (+7213.89%)
Mutual labels:  prometheus-exporter
Exporter exporter
A reverse proxy designed for Prometheus exporters
Stars: ✭ 194 (+438.89%)
Mutual labels:  prometheus-exporter
Collectd
The system statistics collection daemon. Please send Pull Requests here!
Stars: ✭ 2,700 (+7400%)
Mutual labels:  prometheus-exporter
Prometheus Pve Exporter
Exposes information gathered from Proxmox VE cluster for use by the Prometheus monitoring system
Stars: ✭ 171 (+375%)
Mutual labels:  prometheus-exporter
mongodb-query-exporter
Prometheus MongoDB aggregation query exporter
Stars: ✭ 74 (+105.56%)
Mutual labels:  prometheus-exporter
Jmx exporter
A process for exposing JMX Beans via HTTP for Prometheus consumption
Stars: ✭ 2,134 (+5827.78%)
Mutual labels:  prometheus-exporter
Kube Opex Analytics
🎨 Kubernetes Cost Allocation and Capacity Planning Analytics Tool. Hourly, daily, monthly reports - Prometheus exporter - Built-in & Grafana dashboard.
Stars: ✭ 232 (+544.44%)
Mutual labels:  prometheus-exporter
OctoPrint-Smuff
OctoPrint Plugin for SMuFF
Stars: ✭ 17 (-52.78%)
Mutual labels:  octoprint-plugin
github releases exporter
Exports GitHub release metrics to the Prometheus format
Stars: ✭ 21 (-41.67%)
Mutual labels:  prometheus-exporter
Mikrotik Exporter
prometheus mikrotik device(s) exporter
Stars: ✭ 248 (+588.89%)
Mutual labels:  prometheus-exporter

OctoPrint-Prometheus-Exporter

This is a utility plugin, which enables the prometheus server to scrape metrics from your octoprint instance. Later on, you can use data vizualisation tools (for example grafana) to track and visualize your printer(s) status(es).

This plugin has no visible UI!

Currently exported metrics:

  • python version - as info
  • octoprint version, hostname, os - as info
  • actual temperature - as gauge with tool identifier label
  • target temperature - as gauge with tool identifier label
  • client number - as gauge; the actually connected clients to the host
  • printer state - as info
  • started prints - as counter
  • failed prints - as counter
  • done prints - as counter
  • cancelled prints - as counter
  • timelaps count - as counter
  • print progress - as gauge with path label
  • slice progress - as gauge with path label
  • print total time - as counter
  • last print time - as gauge
  • fan speed - as gauge
  • extrusion total - as counter
  • x, y and z travel - as a counter
  • last print extrusion - as gauge
  • print time elapsed - as gauge
  • print time estimate - as gauge
  • print time left estimation - as gauge

All of the metrics are prefixed as octoprint_ for easier identification.

The metrics endpoint is: http://localhost:5000/plugin/prometheus_exporter/metrics (change the host+port to your actual host+port)

Setup

Install via the bundled Plugin Manager or manually using this URL:

https://github.com/tg44/OctoPrint-Prometheus-Exporter/archive/master.zip

Prometheus config

Add this to the scrape_configs part of your prometheus.yml:

- job_name: 'octoprint'
    scrape_interval: 5s
    metrics_path: '/plugin/prometheus_exporter/metrics'
    static_configs:
      - targets: ['octoprint:80']

Or if you have enabled authentication:

 - job_name: 'octoprint'
    scrape_interval: 5s
    metrics_path: '/plugin/prometheus_exporter/metrics'
    params:
      apikey: ['__OCTOPRINT_APIKEY__']
    static_configs:
      - targets: ['octoprint:80']

Permission system

New in version 0.2.0: by default all users / operators have access to the metrics endpoint. If you want to make metrics accessible to anonymous users (guests) without disabling your entire authentication system simply add the metrics permission to the guest user group.

Local developement/testing

There is a docker-compose file, which will start:

  • an octoprint instance on port 5000
    • !!! you should install the plugin to it
    • TODO: auto load the plugin to the newly created container
    • !!! you should add virtual printer to it (after the first start docker/octoprint_data/config.yaml and restart the container)
    • without docker:
      • clone
      • cd to the dir
      • virtualenv --python=/usr/bin/python3 venv3
      • source venv3/bin/activate
      • pip install "OctoPrint>=1.4.0"
      • pip install -e .
      • octoprint serve --debug
      • (on mac there could be a hidden "give me a root password" line)
  • a prometheus instance on port 9090
    • configured to pull the metrics from the octoprint
  • a grafana instance on port 3000
    • configured prometheus as datasource
    • user/pass is admin/foobar

You can start the stack with a regular docker-compose up -d.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].