Skip to main content

query-datasource

Query data from various datasources in a Nightingale (n9e) environment. Supports Prometheus metric queries, Elasticsearch/Loki log queries, and SQL datasource queries such as ClickHouse/MySQL/PostgreSQL/TDengine/Doris. Use when the user asks to query metrics, view monitoring data, search logs, or run PromQL or SQL queries.

Informations de source

Dépôt
ccfos/nightingale
Dernière activité de la source
1 juillet 2026 à 04:20
Langue détectée de SKILL.md
anglais
Étoiles
13 389
Forks
1 793

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Explorateur de fichiers
11 fichiers

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
query-datasource
description
Query data from various datasources in a Nightingale (n9e) environment. Supports Prometheus metric queries, Elasticsearch/Loki log queries, and SQL datasource queries such as ClickHouse/MySQL/PostgreSQL/TDengine/Doris. Use when the user asks to query metrics, view monitoring data, search logs, or run PromQL or SQL queries.
tags
["internal"]
# Nightingale (n9e) Query Datasource Data Query monitoring metrics, logs, and time-series data from various datasources on the Nightingale monitoring platform. Based on the datasource type the user needs, read the corresponding file under the `datasources/` directory to get the query method and parameter format: - [datasources/prometheus.md](datasources/prometheus.md) - Prometheus / VictoriaMetrics metric queries (PromQL) - [datasources/elasticsearch.md](datasources/elasticsearch.md) - Elasticsearch log queries (ES DSL / Lucene) - [datasources/loki.md](datasources/loki.md) - Loki log queries (LogQL) - [datasources/clickhouse.md](datasources/clickhouse.md) - ClickHouse metric/log queries (SQL) - [datasources/mysql.md](datasources/mysql.md) - MySQL metric queries (SQL) - [datasources/pgsql.md](datasources/pgsql.md) - PostgreSQL metric queries (SQL) - [datasources/tdengine.md](datasources/tdengine.md) - TDengine time-series queries (SQL) - [datasources/doris.md](datasources/doris.md) - Doris log queries (SQL) - [datasources/opensearch.md](datasources/opensearch.md) - OpenSearch log queries (ES DSL) - [datasources/victorialogs.md](datasources/victorialogs.md) - VictoriaLogs log queries (LogsQL) --- ## Prerequisites The user needs to provide: - **n9e address**: e.g. `http://<n9e-host>:<port>` - **Username/password**: e.g. `<username>/<password>` - **Query requirement description**: e.g. "query CPU usage over the last hour", "search logs containing error" If the user has not provided the above information, use the AskUserQuestion tool to ask. --- ## Execution Steps ### Step 1: Log in to obtain a Token ``` POST /api/n9e/auth/login Content-Type: application/json Body: {"username":"<username>","password":"<password>"} ``` Extract `dat.access_token` from the response, and include `Authorization: Bearer <token>` in all subsequent requests. ### Step 2: Query available datasources Retrieve the datasource list to determine the datasource ID and type to query: ``` POST /api/n9e/datasource/list Authorization: Bearer <token> Content-Type: application/json Body: {} ``` Each datasource in the response contains `id`, `name`, and `plugin_type`. If the user has not specified a datasource, use the **AskUserQuestion** tool to display the available datasources and let the user choose. ### Step 3: Run the query based on the datasource type Based on the datasource's `plugin_type`, read the corresponding `datasources/*.md` file to get the query API and parameter format. ### Step 4: Format the output Present the query result to the user as a readable Markdown table or list. --- ## Datasource Type Quick Reference | plugin_type | Datasource | Query Language | Use Case | Reference File | |---|---|---|---|---| | `prometheus` | Prometheus / VictoriaMetrics | PromQL | Metric/time-series query | [prometheus.md](datasources/prometheus.md) | | `elasticsearch` | Elasticsearch | ES DSL / Lucene | Log query | [elasticsearch.md](datasources/elasticsearch.md) | | `opensearch` | OpenSearch | ES DSL / Lucene | Log query | [opensearch.md](datasources/opensearch.md) | | `loki` | Loki | LogQL | Log query | [loki.md](datasources/loki.md) | | `ck` | ClickHouse | SQL | Metric/log query | [clickhouse.md](datasources/clickhouse.md) | | `mysql` | MySQL | SQL | Metric query | [mysql.md](datasources/mysql.md) | | `pgsql` | PostgreSQL | SQL | Metric query | [pgsql.md](datasources/pgsql.md) | | `tdengine` | TDengine | SQL | Time-series query | [tdengine.md](datasources/tdengine.md) | | `doris` | Doris | SQL | Log query | [doris.md](datasources/doris.md) | | `victorialogs` | VictoriaLogs | LogsQL | Log query | [victorialogs.md](datasources/victorialogs.md) | --- ## Generic Proxy API All datasources can access their native APIs through the generic proxy: ``` <ANY_METHOD> /api/n9e/proxy/<datasource_id>/<native API path> Authorization: Bearer <token> ``` For example: - Prometheus: `/api/n9e/proxy/1/api/v1/query?query=up` - Elasticsearch: `/api/n9e/proxy/2/_cat/health` - Loki: `/api/n9e/proxy/3/loki/api/v1/labels` --- ## Generic Time-Series Query API All datasources (except Prometheus) can use the unified time-series query endpoint: ``` POST /api/n9e/ds-query Authorization: Bearer <token> Content-Type: application/json ``` ```json { "cate": "<plugin_type>", "datasource_id": 1, "query": [<query object>] } ``` Generic log query endpoint: ``` POST /api/n9e/logs-query Authorization: Bearer <token> Content-Type: application/json ``` ```json { "cate": "<plugin_type>", "datasource_id": 1, "query": [<query object>] } ``` The exact structure of the query object varies by datasource type; see each datasource file for details. --- ## Generic Metadata API for SQL-type Datasources ClickHouse, MySQL, PostgreSQL, and Doris share the following metadata query endpoints: ``` POST /api/n9e/db-databases // List databases POST /api/n9e/db-tables // List tables POST /api/n9e/db-desc-table // View table structure ``` TDengine uses dedicated endpoints: ``` POST /api/n9e/tdengine-databases POST /api/n9e/tdengine-tables POST /api/n9e/tdengine-columns ``` --- ## Key Considerations 1. **Query the datasource list first to get the ID**: All queries require a `datasource_id`; obtain it first via `POST /api/n9e/datasource/list` 2. **SQL queries are read-only**: SQL-type datasources prohibit write operations such as CREATE, INSERT, UPDATE, DELETE, ALTER, DROP 3. **Time variables**: In SQL queries, use `$from` and `$to` to represent the time range; the system replaces them automatically 4. **keys field**: Time-series queries must specify `valueKey` (numeric column) and `labelKey` (grouping column); separate multiple columns with spaces 5. **Unified response format**: All API responses are wrapped in a `{"dat": <data>}` structure
Voir sur GitHub