Prometheus2
- Llama (LMA) Charmers
- Monitoring
Channel | Revision | Published | Runs on |
---|---|---|---|
latest/stable | 60 | 01 Nov 2023 | |
latest/stable | 56 | 28 Jul 2023 | |
latest/stable | 25 | 13 Oct 2021 | |
latest/candidate | 59 | 13 Oct 2023 | |
latest/candidate | 56 | 12 Jul 2023 | |
latest/candidate | 25 | 11 Oct 2021 | |
latest/edge | 60 | 13 Oct 2023 | |
latest/edge | 56 | 12 Jul 2023 |
juju deploy prometheus2
Deploy universal operators easily with Juju, the Universal Operator Lifecycle Manager.
Platform:
-
alert-relabel-configs | string
Alert relabeling is applied to alerts before they are sent to the Alertmanager. It has the same configuration format and actions as target relabeling. Alert relabeling is applied after external labels.
One use for this is ensuring a HA pair of Prometheus servers with different external labels send identical alerts. Example:
- action: labeldrop regex: monitor
-
custom-rules | string
Plan text rules to be loaded by prometheus.yml
-
daemon-args | string
Arbitary string containing list of arguments, separated by a semi-colon to begiven to the prometheus daemon. Please note that the charm will ignore certain arguments, for example "--web.external-url" Examples: "--log.level=debug; --web.enable-lifecycle; --storage.tsdb.retention=21d"
-
enable-generic-rules | boolean
Default: True
If enabled, add minimal alerting rules for all targets. Includes at least an alert if the target is down, may be extended in the future to include more.
-
evaluation-interval | string
Default: 15s
Default evaluation interval
-
external-labels | string
a comma-separated list of label=value labels that are applied to all metrics exported via federation. (E.g. label1=foo,label2=bar)
-
external_url | string
The URL under which Prometheus is externally reachable (for example, if Prometheus is served via a reverse proxy). Used for generating relative and absolute links back to Prometheus itself. If the URL has a path portion, it will be used to prefix all HTTP endpoints served by Prometheus. If omitted, relevant URL components will be derived automatically. It's templatized to accept the following vars: {private_address}, {public_address}, {port}, thus you can use e.g.: juju config prometheus external_url="http://{private_address}:{port}/"
-
federate-config | string
This will be parsed as YAML, format is a list of dicts as shown in the example. Example:
- job_name: 'prom-2'
params:
'match[]':
- '{job="prometheus"}'
- '{name=~"^job:"}'
targets:
- 'source-prometheus-2:9090'
- job_name: 'prod-1'
scheme: https
metrics_path: /prometheus/federate
params:
'match[]':
- '{job=~".+"}'
targets:
- 'my-production-site:443' label: production
- job_name: 'prom-2'
params:
'match[]':
- '{job="prometheus"}'
- '{name=~"^job:"}'
targets:
-
label-juju-units | boolean
If set to true, a "juju_unit" label is added to metrics with the name of the related juju unit. If the related unit is a subordinate, it should set the "principal-unit" key on the relation, with the name of the unit it's related to.
-
monitor-name | string
Prometheus monitor name, will default <service_name>-monitor if not set
-
nagios_context | string
Default: juju
A string that will be prepended to instance name to set the host name in nagios. So for instance the hostname would be something like: juju-myservice-0 If you're running multiple environments with the same services in them this allows you to differentiate between them.
-
nagios_servicegroups | string
Default: juju
Comma separated list of nagios servicegroups for the graphite check
-
prometheus_context | string
A string that will be used to identify this site in the 'cloud_name' label in Prometheus. If you're running multiple environments with the same services in them this allows you to differentiate between them. . If unset, the charm will use the value for nagios_context.
-
prometheus_registration_authtoken | string
Default: changeme
The authtoken used with prometheus registration requests.
-
prometheus_registration_listen | string
The ip prometheus registration will listen on, leave undefined to skip installation and setup of prometheus registration, set to 0.0.0.0 to listen on all interfaces.
-
prometheus_registration_port | int
Default: 12321
The port the prometheus registration service will listen on.
-
promreg_snap_channel | string
Default: stable
Snap channel for promreg installation. For example "stable" or "edge"
-
remote-read | string
URL of a remote endpoint for reading Example: "http://localhost:8086/api/v1/prom/read?u=paul&p=foo&db=prometheus"
-
remote-write | string
URL of a remote endpoint for writing [DEPRECATED]: This option should no longer be used, instead remote-write-config should be used. Example: "http://localhost:8086/api/v1/prom/write?u=paul&p=foo&db=prometheus"
-
remote-write-config | string
This will be parsed as YAML, format is a list of dicts as shown in the example. It support to supply multiple remote endpoints and it's configuratoin for the remote storage. If both remote-write and remote-write-config options supplied together, 'remote-write-config' gets precedence. For configuration, refer https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write Example: Configure multiple remote-write endpoints with relabeling config.
- name: remote_a
url: http://remote_victoriametrics_a:8428/api/v1/write
write_relabel_configs:
- target_label: "remote" replacement: "remote_a"
- name: remote_b
url: http://remote_victoriametrics_b:8428/api/v1/write
write_relabel_configs:
- target_label: "remote" replacement: "remote_b"
- name: remote_a
url: http://remote_victoriametrics_a:8428/api/v1/write
write_relabel_configs:
-
rules-repo | string
Git repository with custom rules. Rules have to be in *.yaml, *.yml, or *.rules files
-
rules-repo-branch | string
Name of the rules-repo branch to target, if not the default branch. Only used if "rules-repo" is set.
-
rules-update-notify-email | string
Email address that will receive cronned rule update failure emails
-
rules-update-schedule | string
Default: */10 * * * *
Cron format schedule used for refresh from external rules repo. Only used if "rules-repo" is set
-
rules-update-ssh-key | string
Plain text private SSH key used to for git authentication. Example: juju config prometheus2 rules-update-ssh-key=@private_ssh_key_file Also see "rules-repo" config option
-
rules_wait_time | string
Default: 5m
The time that an alerting rule must be true for, before firing an alert. Generally specified as the number of seconds, minutes, hours or days in the form \d+[smhd].
-
scrape-interval | string
Default: 15s
Interval at which to scrape targets
-
scrape-jobs | string
Can be used to add custom scrape jobs, for example SNMP exporter config. This will be parsed as YAML, format is a list of dicts as shown in the example. For convenience "{{ snmp_exporter }}" and "{{ blackbox_exporter }}" will be replaced with SNMP and blackbox exporter addresses respectively. Example:
job_name: 'snmp' scrape_interval: 1m scrape_timeout: 1m static_configs: params:
- targets:
- device1.example.com
- device2.example.com
module: [default] relabel_configs:
- source_labels: [address] target_label: __param_target
- source_labels: [__param_target] target_label: instance
- target_label: address replacement: "{{ snmp_exporter }}" # SNMP exporter.
- targets:
job_name: 'my-job' scrape_interval: 30s scrape_timeout: 30s static_configs:
- targets:
- server1.example.com
- server2.example.com
- targets:
-
scrape-timeout | string
Default: 15s
Timeout for scraping targets, must be <= scrape-interval
-
snap_channel | string
Default: 2/stable
Snap channel to use for installation. For example "stable" or "2/edge"
-
snapd_refresh | string
How often snapd handles updates for installed snaps. The default (an empty string) is 4x per day. Set to "max" to check once per month based on the charm deployment date. You may also set a custom string as described in the 'refresh.timer' section here: https://forum.snapcraft.io/t/system-options/87
-
static-targets | string
Where to gather metrics from. Examples: host1.maas:9090 host1.maas:9090, host2.maas:9090
-
web-listen-port | int
Default: 9090
Port to listen on for the web interface, API, and telemetry.