Skip to content

Commit

Permalink
create a working example of vector internal metrics monitoring
Browse files Browse the repository at this point in the history
Signed-off-by: Jérémie Drouet <[email protected]>
  • Loading branch information
jdrouet committed Nov 23, 2021
1 parent 7ecceaf commit 99c1345
Show file tree
Hide file tree
Showing 4 changed files with 74 additions and 0 deletions.
8 changes: 8 additions & 0 deletions internal-metrics-monitoring/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Vector internal metrics monitoring

This demo shows how to monitor Vector's [internal metrics](https://vector.dev/docs/reference/configuration/sources/internal_metrics/) using [Prometheus](https://prometheus.io/).

## How to start it

To start it, you first need to clone this repository, go into the `internal-metrics-monitoring` folder and run `docker-compose up`.

24 changes: 24 additions & 0 deletions internal-metrics-monitoring/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
version: '3.9'

services:
vector:
image: timberio/vector:latest-alpine
environment:
- LOG=info
networks:
- backend
volumes:
- ./vector:/etc/vector:ro

prometheus:
image: bitnami/prometheus:latest
networks:
- backend
ports:
- 9090:9090
volumes:
- ./prometheus/prometheus.yml:/opt/bitnami/prometheus/conf/prometheus.yml:ro

networks:
backend: {}

27 changes: 27 additions & 0 deletions internal-metrics-monitoring/prometheus/prometheus.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# my global config
global:
scrape_interval: 10s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
# scrape_timeout is set to the global default (10s).

# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: 'vector-monitor'

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first.rules"
# - "second.rules"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'activity'

# metrics_path defaults to '/metrics'
# scheme defaults to 'http'.

static_configs:
- targets: ['vector:9090']
15 changes: 15 additions & 0 deletions internal-metrics-monitoring/vector/vector.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[sources.random]
type = "demo_logs"
format = "json"

[sinks.blackhole]
type = "blackhole"
inputs = ["random"]

[sources.internal_metrics]
type = "internal_metrics"

[sinks.prometheus]
type = "prometheus_exporter"
inputs = ["internal_metrics"]
address = "0.0.0.0:9090"

0 comments on commit 99c1345

Please sign in to comment.