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

89 lines
2.6 KiB
Markdown

# 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:
```yaml
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:
```yaml
- name: Get Prometheus metrics
prometheus:
query: up
register: prometheus_result
```
2. With format option:
```yaml
- name: Get CPU idle time
prometheus:
query: sum(rate(node_cpu_seconds_total{mode='idle'}[5m]))
format: value
register: cpu_idle
```
3. Specify time parameter:
```yaml
- name: Get historical Goroutines count
prometheus:
query: go_goroutines
time: 2023-01-01T12:00:00Z
register: goroutines
```
4. Fetch Prometheus server information:
```yaml
- name: Fetch Prometheus server info
fetch:
src: api/v1/status/buildinfo
dest: info.json
```
5. Format results as table:
```yaml
- 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