Many of the examples provided within documentation are using a single dash for the command line arguments, but the telegraf executable explicitly has two dashes. There are also some inconsistencies with the ordering of the command line argument examples. I've ordered them so that the examples will show: config, config-directory, input-filter, test
107 lines
3.1 KiB
Markdown
107 lines
3.1 KiB
Markdown
# Prometheus Input Plugin
|
|
|
|
The prometheus input plugin gathers metrics from any webpage
|
|
exposing metrics with Prometheus format
|
|
|
|
### Configuration:
|
|
|
|
Example for Kubernetes apiserver
|
|
```toml
|
|
# Get all metrics from Kube-apiserver
|
|
[[inputs.prometheus]]
|
|
# An array of urls to scrape metrics from.
|
|
urls = ["http://my-kube-apiserver:8080/metrics"]
|
|
```
|
|
|
|
Specify a 10 second timeout for slower/over-loaded clients
|
|
```toml
|
|
# Get all metrics from Kube-apiserver
|
|
[[inputs.prometheus]]
|
|
# An array of urls to scrape metrics from.
|
|
urls = ["http://my-kube-apiserver:8080/metrics"]
|
|
|
|
# Specify timeout duration for slower prometheus clients (default is 3s)
|
|
response_timeout = "10s"
|
|
```
|
|
|
|
You can use more complex configuration
|
|
to filter and some tags
|
|
|
|
```toml
|
|
# Get all metrics from Kube-apiserver
|
|
[[inputs.prometheus]]
|
|
# An array of urls to scrape metrics from.
|
|
urls = ["http://my-kube-apiserver:8080/metrics"]
|
|
# Get only metrics with "apiserver_" string is in metric name
|
|
namepass = ["apiserver_*"]
|
|
# Add a metric name prefix
|
|
name_prefix = "k8s_"
|
|
# Add tags to be able to make beautiful dashboards
|
|
[inputs.prometheus.tags]
|
|
kubeservice = "kube-apiserver"
|
|
```
|
|
|
|
```toml
|
|
# Authorize with a bearer token skipping cert verification
|
|
[[inputs.prometheus]]
|
|
# An array of urls to scrape metrics from.
|
|
urls = ["http://my-kube-apiserver:8080/metrics"]
|
|
bearer_token = '/path/to/bearer/token'
|
|
insecure_skip_verify = true
|
|
```
|
|
|
|
```toml
|
|
# Authorize using x509 certs
|
|
[[inputs.prometheus]]
|
|
# An array of urls to scrape metrics from.
|
|
urls = ["https://my-kube-apiserver:8080/metrics"]
|
|
|
|
ssl_ca = '/path/to/cafile'
|
|
ssl_cert = '/path/to/certfile'
|
|
ssl_key = '/path/to/keyfile'
|
|
```
|
|
|
|
### Measurements & Fields & Tags:
|
|
|
|
Measurements and fields could be any thing.
|
|
It just depends of what you're quering.
|
|
|
|
Example:
|
|
|
|
```
|
|
# HELP go_gc_duration_seconds A summary of the GC invocation durations.
|
|
# TYPE go_gc_duration_seconds summary
|
|
go_gc_duration_seconds{quantile="0"} 0.00010425500000000001
|
|
go_gc_duration_seconds{quantile="0.25"} 0.000139108
|
|
go_gc_duration_seconds{quantile="0.5"} 0.00015749400000000002
|
|
go_gc_duration_seconds{quantile="0.75"} 0.000331463
|
|
go_gc_duration_seconds{quantile="1"} 0.000667154
|
|
go_gc_duration_seconds_sum 0.0018183950000000002
|
|
go_gc_duration_seconds_count 7
|
|
# HELP go_goroutines Number of goroutines that currently exist.
|
|
# TYPE go_goroutines gauge
|
|
go_goroutines 15
|
|
```
|
|
|
|
- go_goroutines,
|
|
- gauge (integer, unit)
|
|
- go_gc_duration_seconds
|
|
- field3 (integer, bytes)
|
|
|
|
- All measurements have the following tags:
|
|
- url=http://my-kube-apiserver:8080/metrics
|
|
- go_goroutines has the following tags:
|
|
- kubeservice=kube-apiserver
|
|
- go_gc_duration_seconds has the following tags:
|
|
- kubeservice=kube-apiserver
|
|
|
|
### Example Output:
|
|
|
|
Example of output with configuration given above:
|
|
|
|
```
|
|
$ ./telegraf --config telegraf.conf --test
|
|
k8s_go_goroutines,kubeservice=kube-apiserver,url=http://my-kube-apiserver:8080/metrics gauge=536 1456857329391929813
|
|
k8s_go_gc_duration_seconds,kubeservice=kube-apiserver,url=http://my-kube-apiserver:8080/metrics 0=0.038002142,0.25=0.041732467,0.5=0.04336492,0.75=0.047271799,1=0.058295811,count=0,sum=208.334617406 1456857329391929813
|
|
```
|