kubekey/docs/en/modules/prometheus.md
liujian 192af7bb7e
feat: add Chinese README and documentation updates (#2791)
- Introduced a new Chinese version of the README file (README_zh-CN.md) to enhance accessibility for Chinese-speaking users.
- Updated the English README to reflect new features and installation instructions.
- Added detailed documentation for project structure, playbooks, roles, tasks, and modules to improve user understanding and usability.

Signed-off-by: [Your Name] <[Your Email]>
Signed-off-by: redscholar <blacktiledhouse@gmail.com>
2025-09-30 10:00:07 +08:00

2.6 KiB

Prometheus Module

The Prometheus module allows users to query metric data from a Prometheus server. It uses a dedicated Prometheus connector and supports running PromQL queries, formatting results, and fetching server information.

Configuration

To use the Prometheus module, define Prometheus hosts and connection info in the inventory:

prometheus:
  connector:
    type: prometheus
    host: http://prometheus-server:9090    # URL of the Prometheus server
    username: admin                        # Optional: basic auth username
    password: password                     # Optional: basic auth password
    token: my-token                        # Optional: Bearer token
    timeout: 15s                           # Optional: request timeout (default 10s)
    headers:                               # Optional: custom HTTP headers
      X-Custom-Header: custom-value

Parameters

Parameter Description Type Required Default
query PromQL query statement string Yes (unless using info) -
format Result format: raw, value, table string No raw
time Query time (RFC3339 or Unix timestamp) string No current time

Output

The module returns query results or server information depending on the specified format:

  • raw: returns the original JSON response
  • value: extracts a single scalar/vector value if possible
  • table: formats vector results as a table with columns for metric, value, and timestamp

Usage Examples

  1. Basic query:
- name: Get Prometheus metrics
  prometheus:
    query: up
  register: prometheus_result
  1. With format option:
- name: Get CPU idle time
  prometheus:
    query: sum(rate(node_cpu_seconds_total{mode='idle'}[5m]))
    format: value
  register: cpu_idle
  1. Specify time parameter:
- name: Get historical Goroutines count
  prometheus:
    query: go_goroutines
    time: 2023-01-01T12:00:00Z
  register: goroutines
  1. Fetch Prometheus server information:
- name: Fetch Prometheus server info
  fetch:
    src: api/v1/status/buildinfo
    dest: info.json
  1. Format results as table:
- name: Get node CPU usage and format as table
  prometheus:
    query: node_cpu_seconds_total{mode="idle"}
    format: table
  register: cpu_table

Notes

  1. The query parameter is required when executing queries
  2. Time must be in RFC3339 format (e.g., 2023-01-01T12:00:00Z) or Unix timestamp
  3. Table formatting only applies to vector results; other types will return an error
  4. For security, HTTPS connections to Prometheus are recommended