• This repository has been archived on 12/Mar/2021
  • Stars
    star
    130
  • Rank 277,575 (Top 6 %)
  • Language
    Go
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Prometheus metrics exporter for libvirt.

Prometheus libvirt exporter

Please note: This repository is currently unmaintained. Due to insufficient time and not using the exporter anymore we decided to archive this project.


This repository provides code for a Prometheus metrics exporter for libvirt. This exporter connects to any libvirt daemon and exports per-domain metrics related to CPU, memory, disk and network usage. By default, this exporter listens on TCP port 9177.

This exporter makes use of libvirt-go, the official Go bindings for libvirt. Ideally, this exporter should make use of the GetAllDomainStats() API call to extract all relevant metrics. Unfortunately, we at Kumina still need this exporter to be compatible with older versions of libvirt that don't support this API call.

The following metrics/labels are being exported:

libvirt_domain_block_stats_read_bytes_total{domain="...",uuid="...",source_file="...",target_device="..."}
libvirt_domain_block_stats_read_requests_total{domain="...",uuid="...",source_file="...",target_device="..."}
libvirt_domain_block_stats_write_bytes_total{domain="...",uuid="...",source_file="...",target_device="..."}
libvirt_domain_block_stats_write_requests_total{domain="...",uuid="...",source_file="...",target_device="..."}
libvirt_domain_info_cpu_time_seconds_total{domain="...",uuid="..."}
libvirt_domain_info_maximum_memory_bytes{domain="...",uuid="..."}
libvirt_domain_info_memory_usage_bytes{domain="...",uuid="..."}
libvirt_domain_info_virtual_cpus{domain="...",uuid="..."}
libvirt_domain_interface_stats_receive_bytes_total{domain="...",uuid="...",source_bridge="...",target_device="..."}
libvirt_domain_interface_stats_receive_drops_total{domain="...",uuid="...",source_bridge="...",target_device="..."}
libvirt_domain_interface_stats_receive_errors_total{domain="...",uuid="...",source_bridge="...",target_device="..."}
libvirt_domain_interface_stats_receive_packets_total{domain="...",uuid="...",source_bridge="...",target_device="..."}
libvirt_domain_interface_stats_transmit_bytes_total{domain="...",uuid="...",source_bridge="...",target_device="..."}
libvirt_domain_interface_stats_transmit_drops_total{domain="...",uuid="...",source_bridge="...",target_device="..."}
libvirt_domain_interface_stats_transmit_errors_total{domain="...",uuid="...",source_bridge="...",target_device="..."}
libvirt_domain_interface_stats_transmit_packets_total{domain="...",uuid="...",source_bridge="...",target_device="..."}
libvirt_up

With the --libvirt.export-nova-metadata flag, it will export the following additional OpenStack-specific labels for every domain:

  • name
  • flavor
  • project_name

At Kumina we want to perform a single build of this exporter, deploying it to a variety of Linux distribution versions. This is why this repository contains a shell script, build_static.sh, that builds a statically linked copy of this exporter in an Alpine Linux based container.

More Repositories

1

postfix_exporter

A Prometheus exporter for Postfix.
Go
239
star
2

openvpn_exporter

A Prometheus exporter for OpenVPN.
Go
214
star
3

dovecot_exporter

Prometheus metrics exporter for Dovecot.
Go
50
star
4

nagios-plugins-kumina

A collection of Nagios plugins that we package.
Perl
42
star
5

promacct

Network accounting daemon for Prometheus
C++
34
star
6

fakemac

C
29
star
7

python_container_demo_app

A very simple example of a Python-based web application running in a container.
Python
23
star
8

wsproxy

A websockets proxy, written in C
C
18
star
9

birdwatcher

Birdwatcher: A Prometheus metrics exporter for Calico/BIRD
Python
17
star
10

buckler

A proxy to add support for authentication and authorization to Kibana 4
Python
16
star
11

shutdown-kvm-guests

A script for easily shutting down KVM guests.
Shell
16
star
12

logstash-patterns

A collection of logstash grok patterns we use.
11
star
13

fact-pci_devices

Facts for devices in lspci
Ruby
10
star
14

munin-puppetmaster

Trend a puppetmaster with munin.
Ruby
8
star
15

traefik-routing-plugin

Proof of concept. Is it possible to bait Traefik so that we can have a custom solution for figuring out which request needs to go to which k8s service?
Go
5
star
16

kubi_ecs_logger

Logging library according to Elastic Common Schema.
Python
5
star
17

k8s-redirectory

Redirectory is a system for redirecting requests that would usually end in a 404 response to a new destination based on rules specified by the user with the help of a UI.
Python
4
star
18

kuminami

Our scripts to handle Amazon EC2 instances, the Kumina way.
Shell
4
star
19

checkpuppet

A script that allows us to restart puppet from puppet. It also makes sure puppet runs.
Shell
3
star
20

awssyncer

Automatic syncer of local directories into Amazon AWS S3
C++
3
star
21

redirectory

A simple app to easily create redirects.
Python
2
star
22

ndproxy

A script to push NDs from one interface to another
Shell
2
star
23

django-powerdns-manager

This is an import of the django-powerdns-admin mercurial repository, with changes
Python
1
star
24

vagrant-buckler

A Vagrant environment for testing Buckler
Ruby
1
star