发布时间:2026/7/8 16:01:10
使用 Elasticsearch 作为 Grafana 的直接替代 Prometheus 后端
作者来自 Elastic Felix Barnsteiner使用 Elasticsearch 作为 Grafana 仪表盘的 Prometheus 后端在无需更改 PromQL workflows 的情况下支持自动补全、Metrics Drilldown 和告警。在不改变 PromQL workflows 的情况下将 Elasticsearch 用作 Grafana 仪表盘、自动补全、Metrics Drilldown 和告警的 Prometheus 后端。Elasticsearch 已经是 Grafana 生态系统中最受欢迎的插件之一现在我们进一步增强了它在 metrics 使用场景中的能力。如果你目前运行 Prometheus并使用 Grafana 可视化 metrics现在可以直接将 Grafana 的 Prometheus data source 指向 Elasticsearch。无需 sidecar无需 adapter也无需修改 pipeline。Elasticsearch 现在实现了原生 Prometheus 兼容 API 层覆盖了通过 Remote Write 进行的摄入以及通过 PromQL 进行的查询。本文将端到端展示 Grafana 配置流程。配套文章还介绍了 Kibana 中的 PromQL 和 Remote Write 架构。为什么使用 Elasticsearch 作为 Prometheus 后端过去一年中Elasticsearch 已经成为先进的 metrics 存储系统时间序列 data streams、ES|QL 的 TS 命令以及能够为 Prometheus 风格工作负载提供高性能 metrics 处理能力 的存储和查询优化。Prometheus 兼容 API 层让你可以通过团队已经使用的工具访问这个引擎。许多团队已经在基于 Prometheus 的工具链上投入了大量资源仪表盘、引用 PromQL 查询的运行手册runbook、围绕 Grafana 面板构建的 on-call 工作流。Elasticsearch 的 Prometheus 兼容端点允许你迁移 metrics 存储同时保留这些 Grafana 工作流。如果你已经使用 Elasticsearch 存储日志或 traces并希望将可观测性数据整合到单一平台同时保持现有的 Grafana 工作流这一点尤其重要。Elasticsearch Prometheus API 包含哪些内容Elasticsearch Prometheus API 提供三类端点。查询 API核心查询端点允许 Grafana 针对存储在 Elasticsearch 中的数据执行 PromQL 表达式GET和POST /_prometheus/api/v1/query_range在指定时间窗口内执行 PromQL 表达式并返回 matrix 结果。这是大多数 Grafana 仪表盘面板的基础。GET和POST /_prometheus/api/v1/query在单个时间点执行 PromQL 表达式并返回 vector 结果。两个端点都实现了标准 Prometheus 响应封装包括结果类型vector、matrix、scalar、string、状态码以及错误处理。对于POST请求需要在application/x-www-form-urlencodedbody 中发送参数与 Prometheus client 的行为保持一致。元数据 APIGrafana 的 metrics explorer、自动补全以及变量下拉列表依赖元数据端点来发现可用内容。Elasticsearch 支持GET和POST /_prometheus/api/v1/series返回匹配 label selector 的时间序列。GET和POST /_prometheus/api/v1/labels返回所有可用的 label 名称。GET /_prometheus/api/v1/label/{name}/values返回指定 label 的所有值。GET /_prometheus/api/v1/metadata返回每个 metric 名称的类型和帮助文本。这些端点支持 Grafana 中的自动补全和 metric 浏览器。/metadata端点还支持 Grafana 的 Metrics Drilldown这是一个交互式 metric explorer它以实时 sparkline 网格的形式展示所有可用 metrics并允许你无需编写 PromQL 查询即可深入查看任意 metric。索引预过滤所有查询和元数据端点都支持可选的{index}路径段该路径段紧跟在/_prometheus/之后例如GET /_prometheus/metrics-prod-*/api/v1/query_range该预过滤会在执行任何表达式计算之前先限制 PromQL 查询运行的 Elasticsearch 索引范围。对于跨多个 data streams 的大量 metrics 数据限制查询范围可以减少仪表盘查询工作量。你可以针对不同 index pattern 配置独立的 Grafana data source从而让团队只访问自己的 metrics。Remote Write 摄入Elasticsearch 同样实现了 Prometheus Remote Write 协议允许你通过标准remote_write配置将 metrics 从 Prometheus 发送到 Elasticsearch。在现有 Prometheus 配置中添加 Elasticsearch 作为 remote write 目标只需要增加一个代码块remote_write: - url: es_endpoint/_prometheus/api/v1/write authorization: type: ApiKey credentials: api_key默认情况下metrics 会存储在metrics-generic.prometheus-defaultdata stream 中。你可以使用 dataset 和 namespace 路径段将来自不同 Prometheus 实例或环境的 metrics 路由到不同 data streamsPOST /_prometheus/metrics/{dataset}/api/v1/write将 metrics 存储到metrics-{dataset}.prometheus-defaultPOST /_prometheus/metrics/{dataset}/{namespace}/api/v1/write将 metrics 存储到metrics-{dataset}.prometheus-{namespace}如何将 Grafana 连接到 Elasticsearch第 1 步创建 serverless 项目登录 cloud.elastic.co创建一个新的Observabilityserverless 项目。项目创建完成后你会直接进入 Kibana。要查找 Elasticsearch 端点返回 Elastic Cloud 控制台打开Manage Application endpoints, cluster and component IDs然后点击Elasticsearch旁边的复制图标。该端点格式如下https://project-id.es.region.provider.elastic.cloud第 2 步创建 API keys创建两个具有受限权限范围的 API keys一个用于摄入ingestion一个用于查询querying。使用独立的 keys 意味着即使 Grafana key 泄露也无法被用于写入数据即使 ingest key 泄露也无法被用于读取数据。在你的项目中打开Admin and settings侧边导航栏左下角的 ⚙️ 图标进入API keys并创建第一个 key。Ingest keyprometheus-remote-write限制只能访问写入 metrics data streams。在Control security privileges部分粘贴以下 role descriptor{ ingest: { indices: [ { names: [metrics-*], privileges: [auto_configure, create_doc] } ] } }在同一部分创建第二个用于 Grafana 的 key。Query keyprometheus-grafana限制只能访问读取 metrics data streams。{ query: { indices: [ { names: [metrics-*], privileges: [read, view_index_metadata] } ] } }在关闭之前复制两个 key 的值。之后你将无法再次获取它们。第 3 步运行 Prometheus 和 Grafana创建一个prometheus.yml让它抓取 Prometheus 自身的 metrics并将这些 metrics 转发到 Elasticsearch。将es_endpoint替换为第 1 步中的端点并将ingest_api_key替换为第 2 步中的 ingest keyglobal: scrape_interval: 15s scrape_configs: - job_name: prometheus static_configs: - targets: [localhost:9090] remote_write: - url: es_endpoint/_prometheus/api/v1/write authorization: type: ApiKey credentials: ingest_api_key接下来创建 Grafana provisioning 目录mkdir -p grafana/provisioning/datasources grafana/provisioning/dashboards然后创建一个指向 Elasticsearch Prometheus API 的 Grafana data source 配置。创建grafana/provisioning/datasources/datasource.yml将es_endpoint和query_api_key替换为第 1 步和第 2 步中的值apiVersion: 1 datasources: - name: Elasticsearch type: prometheus access: proxy url: es_endpoint/_prometheus uid: elasticsearch-prometheus isDefault: true jsonData: httpHeaderName1: Authorization secureJsonData: httpHeaderValue1: ApiKey query_api_key该配置会创建一个由 Elasticsearch 支持的 Prometheus 类型 data source。Grafana 默认通过POST发送 Prometheus queriesElasticsearch 可以在经过身份验证的 HTTPS 端点例如 Serverless上接受这些请求。创建grafana/provisioning/dashboards/dashboards.yml用于告诉 Grafana 从哪里查找已配置的 dashboardsapiVersion: 1 providers: - name: default type: file options: path: /var/lib/grafana/dashboards最后创建一个docker-compose.yml来启动所有组件services: prometheus: image: prom/prometheus:latest ports: - 9090:9090 volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml:ro download-dashboard: image: curlimages/curl:latest user: root volumes: - dashboards:/dashboards command: sh -c curl -fsSL https://grafana.com/api/dashboards/3662/revisions/2/download | sed s/\$${DS_THEMIS}/elasticsearch-prometheus/g /dashboards/prometheus-overview.json grafana: image: grafana/grafana:latest ports: - 3000:3000 depends_on: download-dashboard: condition: service_completed_successfully environment: - GF_SECURITY_ADMIN_PASSWORDgrafana volumes: - ./grafana/provisioning:/etc/grafana/provisioning:ro - dashboards:/var/lib/grafana/dashboards:ro volumes: dashboards:download-dashboardservice 会从 Grafana marketplace 获取 Prometheus 2.0 Overview dashboard并对其进行修改使其使用 Elasticsearch data source。sed会将 dashboard 中的${DS_THEMIS}data source 占位符替换为我们的 data source UID。这是必要的因为 Grafana 的 provisioning 不会自行解析这些占位符grafana#10786。Grafana 会等待下载完成后再启动。使用以下命令启动两者docker compose up -dPrometheus 会开始抓取自身的 metrics并每 15 秒将它们发送到 Elasticsearch。在打开 dashboard 之前等待一个或两个 scrape interval。第 4 步打开 dashboard在http://localhost:3000打开 Grafana并使用admin/grafana登录。进入Dashboards打开Prometheus 2.0 Overview。该 dashboard 展示你的 Prometheus 自监控 metrics这些 metrics 通过 PromQL queries 从 Elasticsearch 中获取。第 5 步使用 Grafana 的 Metrics Drilldown 探索 metrics由于 Elasticsearch 实现了 Prometheus 元数据和发现端点Grafana 的 Metrics Drilldown 可以直接使用。在 Grafana 中进入左侧导航栏的Drilldown Metrics并选择Elasticsearch作为 data source。Grafana 会从 Elasticsearch 加载所有可用的 metrics并以实时 sparklines 网格的形式展示。从这里开始你可以通过 label 进行过滤通过名称搜索并且无需编写 PromQL 即可深入查看任意 metric。当前限制和未来计划这是第一个实现版本后续会持续更新。目前以下功能都在积极开发中PromQL 覆盖范围尚未完整使用 group modifiers例如on(instance, job)、set operatorsor、and、unless以及某些函数例如topk的查询目前尚不支持。Form-encoded POST 有部署要求带有application/x-www-form-urlencodedbody 的POST请求需要启用安全功能、在 Elasticsearch HTTP 接口上启用 TLS并且请求必须经过身份验证。Serverless 默认满足这些要求。如果 TLS 在 Elasticsearch 之前终止而节点接收到的是普通 HTTP则应改用带有 query-string 参数的GET请求。目前仅支持 Remote Write v1Remote Write v2 支持计划后续提供。Instant queries 目前还不是时间点查询instant query 端点当前底层运行的是一个短范围查询并返回最后一个 sample。未来会替换为真正的时间点评估。即将支持更广泛的 PromQL 函数和操作符覆盖、Remote Write v2以及 exemplar 端点。常见问题Grafana 可以查询存储在 Elasticsearch 中的 Prometheus metrics 吗可以。当 URL 指向/_prometheus时Grafana 可以使用 Elasticsearch 作为 Prometheus data source。查询使用 PromQL并返回标准 Prometheus 响应格式用于 Grafana dashboards、变量、Metrics Drilldown 和告警。我需要修改 Prometheus 或 Grafana dashboards 才能使用 Elasticsearch 吗对于常见的 Grafana 使用场景你不需要重写 PromQL queries 或 dashboard panels。配置 Prometheus Remote Write将 metrics 发送到 Elasticsearch然后将 Grafana 的 Prometheus data source 指向 Elasticsearch 的/_prometheusendpoint 即可。为什么使用 Elasticsearch而不是单独的 Prometheus 长期存储后端使用 Elasticsearch 作为 Prometheus 后端可以在相同的访问控制和 retention 模型下将 metrics 与日志和 traces 存储在一起。最近 Elasticsearch metrics engine 的相关工作也为 Prometheus 风格工作负载提供了出色的性能。有关基准测试详情请查看 Elasticsearch metrics 性能文章。目前 Elasticsearch 支持哪些 PromQL 功能Elasticsearch 支持 Grafana dashboards 中常用的 PromQL 查询模式。高级 group modifiers、set operators 和topk目前尚不支持。我可以限制 Grafana queries 只访问特定的 Elasticsearch indices 吗可以。在/_prometheus/后添加 index pattern例如/_prometheus/metrics-prod-*/api/v1/query_range。这会在 PromQL evaluation 之前预过滤 Elasticsearch indices并可以减少大型 metrics 部署中的查询工作量。Prometheus API 可用性Prometheus 兼容 API 目前已经可以在 Elasticsearch Serverless 上使用无需额外配置。如果遇到问题或有反馈请在 Elasticsearch repository 中提交 issue。原文Use Elasticsearch as a Drop-In Prometheus Backend for Grafana — Elastic Observability Labs

相关新闻

ADP5350与STM32F205RB嵌入式电源管理方案解析
2026/7/8 16:01:10

ADP5350与STM32F205RB嵌入式电源管理方案解析

1. 为什么选择ADP5350与STM32F205RB组合? 在嵌入式系统设计中,电源管理一直是决定产品可靠性的关键因素。ADP5350作为ADI公司推出的高级电源管理IC(PMIC),其最大特点在于集成了完整的电池管理功能与多路高效DC-DC转换器…

阅读更多
epkg-autopkg输出文件详解:package.yaml、phase.sh和ePKG包的生成原理
2026/7/8 15:01:10

epkg-autopkg输出文件详解:package.yaml、phase.sh和ePKG包的生成原理

epkg-autopkg输出文件详解:package.yaml、phase.sh和ePKG包的生成原理 【免费下载链接】epkg-autopkg an integrated tool to create epkg yaml for upstream projects in various language and build system 项目地址: https://gitcode.com/openeuler/epkg-autop…

阅读更多
openstack-kolla-plugin Queens版本适配教程:OpenStack部署openEuler详细步骤
2026/7/8 15:01:10

openstack-kolla-plugin Queens版本适配教程:OpenStack部署openEuler详细步骤

openstack-kolla-plugin Queens版本适配教程:OpenStack部署openEuler详细步骤 【免费下载链接】openstack-kolla-plugin Adaptable coding made by openstack-kolla for openEuler 项目地址: https://gitcode.com/openeuler/openstack-kolla-plugin 前往项目…

阅读更多
网易云热门乐评 API 调用限制与用量边界详解
2026/7/8 16:01:10

网易云热门乐评 API 调用限制与用量边界详解

适用场景 网易云热门乐评 API 提供随机返回一条高赞热评及其关联歌曲信息的能力。典型使用场景包括: 在博客、自媒体或聊天机器人中展示随机的动人乐评,增加内容温度;音乐类应用的评论区推荐模块,展示优质热评;情感分析…

阅读更多
微服务调用链的超时、重试与熔断——Resilience4j 生产配置指南
2026/7/8 16:01:10

微服务调用链的超时、重试与熔断——Resilience4j 生产配置指南

微服务调用链的超时、重试与熔断——Resilience4j 生产配置指南 一、分布式调用链的可靠性保障模型 微服务架构中,一次用户请求可能穿越数十个服务节点。调用链越长,故障概率越高。假设每个节点的可用性为 99.9%,10 个节点的串联可用性将降至…

阅读更多
华为云Flexus+DeepSeek征文|从零搭建企业级AI知识库:DeepSeek + Dify + Flexus X 实战指南
2026/7/8 16:01:10

华为云Flexus+DeepSeek征文|从零搭建企业级AI知识库:DeepSeek + Dify + Flexus X 实战指南

引言 在当今企业数字化转型浪潮中,大模型技术已经从"能用"迈向"好用"的阶段。然而,很多开发者在实际落地时遇到了一个共同的困境:模型调用成本高、部署流程复杂、缺乏可视化的编排工具。这三个问题像三座大山&#xff0…

阅读更多
使用 Elasticsearch 作为 Grafana 的直接替代 Prometheus 后端
2026/7/8 16:01:10

使用 Elasticsearch 作为 Grafana 的直接替代 Prometheus 后端

作者:来自 Elastic Felix Barnsteiner 使用 Elasticsearch 作为 Grafana 仪表盘的 Prometheus 后端,在无需更改 PromQL workflows 的情况下,支持自动补全、Metrics Drilldown 和告警。 在不改变 PromQL workflows 的情况下,将 Ela…

阅读更多
ADP5350与STM32F205RB嵌入式电源管理方案解析
2026/7/8 16:01:10

ADP5350与STM32F205RB嵌入式电源管理方案解析

1. 为什么选择ADP5350与STM32F205RB组合? 在嵌入式系统设计中,电源管理一直是决定产品可靠性的关键因素。ADP5350作为ADI公司推出的高级电源管理IC(PMIC),其最大特点在于集成了完整的电池管理功能与多路高效DC-DC转换器…

阅读更多
epkg-autopkg输出文件详解:package.yaml、phase.sh和ePKG包的生成原理
2026/7/8 15:01:10

epkg-autopkg输出文件详解:package.yaml、phase.sh和ePKG包的生成原理

epkg-autopkg输出文件详解:package.yaml、phase.sh和ePKG包的生成原理 【免费下载链接】epkg-autopkg an integrated tool to create epkg yaml for upstream projects in various language and build system 项目地址: https://gitcode.com/openeuler/epkg-autop…

阅读更多
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御
2026/7/8 4:53:25

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

阅读更多
3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略
2026/7/7 22:39:42

3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略

3步彻底解决Windows右键菜单混乱问题:ContextMenuManager使用全攻略 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾为Windows右键菜单中那些…

阅读更多
GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复
2026/7/7 22:28:33

GXDE OS下Wayland兼容性实战:从deepin-mutter原理到VMware Tools修复

如果你正在用 GXDE OS 或者任何基于 Deepin 的发行版,并且遇到了“检测到窗口系统采用 Wayland 协议,程序即将退出”这类弹窗,或者发现 VMware Tools 在 Ubuntu 24.04 这类默认 Wayland 的系统上启动失败,那这篇文章就是为你准备的…

阅读更多
A股股指期货:全维度解析(多表格结构化完整版)
2026/7/8 0:01:06

A股股指期货:全维度解析(多表格结构化完整版)

一、基础定义与核心本质股指期货全称股票价格指数期货,是中国金融期货交易所(中金所)上市的标准化金融期货合约,交易标的为 A 股大盘指数,约定未来特定时间按约定价格现金交割指数涨跌差价,不交割一篮子股票…

阅读更多
iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事
2026/7/8 0:01:06

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事

iOS越狱新手指南:从困惑到掌控,3天解锁iPhone无限潜能的真实故事 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder &…

阅读更多
EM3080-W解码芯片与TM4C129ENCPDT微控制器技术解析
2026/7/8 0:01:06

EM3080-W解码芯片与TM4C129ENCPDT微控制器技术解析

1. EM3080-W解码芯片与TM4C129ENCPDT微控制器的技术特性解析EM3080-W作为专业级条码解码芯片,其核心优势在于采用了双核DSP架构。主处理核心运行频率高达120MHz,能够实时处理1280800分辨率的图像数据,而辅助协处理器则专门优化了27种一维/二维…

阅读更多
基于Dify与DeepSeek构建私有知识库问答系统实战指南
2026/7/7 14:57:49

基于Dify与DeepSeek构建私有知识库问答系统实战指南

在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…

阅读更多
FAE放射组学分析工具:医学影像特征探索的完整解决方案
2026/7/8 10:11:21

FAE放射组学分析工具:医学影像特征探索的完整解决方案

FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE 你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…

阅读更多
DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!
2026/7/7 9:58:00

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖!

DesktopNaotu:你的终极离线思维导图解决方案,告别网络依赖! 【免费下载链接】DesktopNaotu 桌面版脑图 (百度脑图离线版,思维导图) 跨平台支持 Windows/Linux/Mac OS. (A cross-platform multilingual Mind Map Tool) 项目地址:…

阅读更多