Link Search Menu Expand Document Documentation Menu

指标分析

2.4 版引入

随着 OpenSearch 2.4 的发布,您现在可以使用 Metrics 工具直接在 OpenSearch 中摄入和可视化存储的指标数据。这为您提供了跨日志、追踪和指标分析和关联数据的工具。

在此功能推出之前,您只能摄入和可视化来自受监控环境的日志和追踪数据。通过 Metrics 工具,您现在可以更精细地观察您的数字资产,更深入地了解基础设施的健康状况,并更好地指导您的根本原因分析。

Metrics 工具除了提供以下功能外,还提供联邦可视化能力:

下图显示了从 Prometheus 检索指标并在可视化仪表板上显示它们的工作流程。

Prometheus data source

下图显示了一个可观测性仪表板,它使用 OTel 查询可视化了来自 OpenSearch 索引的指标数据。

OTel data source


配置 Prometheus 以将指标数据发送到 OpenSearch

您必须首先使用 SQL 插件创建从 Prometheus 到 OpenSearch 的连接。然后,您可以使用 _datasources API 端点配置到 Prometheus 的连接。

以下示例显示了一个不带任何身份验证配置 Prometheus 数据源的请求:

POST _plugins/_query/_datasources 
{
    "name" : "my_prometheus",
    "connector": "prometheus",
    "properties" : {
        "prometheus.uri" : "https://:9090"
    }
}

以下示例显示了如何使用 AWS Signature Version 4 身份验证配置 Prometheus 数据源:

POST _plugins/_query/_datasources
{
    "name" : "my_prometheus",
    "connector": "prometheus",
    "properties" : {
        "prometheus.uri" : "https://:8080",
        "prometheus.auth.type" : "awssigv4",
        "prometheus.auth.region" : "us-east-1",
        "prometheus.auth.access_key" : ""
        "prometheus.auth.secret_key" : ""
    }
}

配置连接后,您可以通过转到 Observability > Metrics 页面在 OpenSearch Dashboards 中查看 Prometheus 指标,如下图所示。

Prometheus metrics displayed on a dashboard

开发者资源

有关示例代码、文章、教程和 API 参考,请参阅以下开发者资源:


在 OpenSearch 演示环境中试用 OpenTelemetry Metrics

OpenSearch opentelemetry-demo 仓库提供了一个实用演示,说明如何通过 OpenTelemetry 从 OpenTelemetry Metrics 收集、处理和可视化指标数据,并在 OpenSearch Dashboards 中使用 Metrics 工具。

在 OpenSearch 中可视化 OTel 指标

要在 OpenSearch 中可视化 OTel 指标数据,请按照以下步骤操作:

  1. 安装 opentelemetry-demo 仓库。有关说明,请参阅快速入门
  2. 收集 OTel 信号,包括指标信号。有关说明,请参阅 OTel 收集器指南。
  3. 配置 OTel 管道以发出指标信号。有关说明,请参阅 OTel 收集器管道指南。

YAML 配置文件示例

    service:
      extensions: [basicauth/client]
      pipelines:
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [otlp, debug, spanmetrics, otlp/traces, opensearch/traces]
        metrics:
          receivers: [otlp, spanmetrics]
          processors: [filter/ottl, transform, batch]
          exporters: [otlphttp/prometheus, otlp/metrics, debug]
        logs:
          receivers: [otlp]
          processors: [batch]
          exporters: [otlp/logs,  opensearch/logs, debug]

  1. 配置 Data Prepper 管道以将收集到的指标信号发送到 OpenSearch 指标索引。

YAML 配置文件示例

    otel-metrics-pipeline:
      workers: 8
      delay: 3000
      source:
        otel_metrics_source:
          health_check_service: true
          ssl: false
      buffer:
        bounded_blocking:
          buffer_size: 1024 # max number of records the buffer accepts
          batch_size: 1024 # max number of records the buffer drains after each read
      processor:
        - otel_metrics:
            calculate_histogram_buckets: true
            calculate_exponential_histogram_buckets: true
            exponential_histogram_max_allowed_scale: 10
            flatten_attributes: false
      sink:
        - opensearch:
            hosts: ["https://opensearch-node1:9200"]
            username: "admin"
            password: "my_%New%_passW0rd!@#"
            insecure: true
            index_type: custom
            template_file: "templates/ss4o_metrics.json"
            index: ss4o_metrics-otel-%{yyyy.MM.dd}
            bulk_size: 4

  1. 将指标数据摄入 OpenSearch。随着演示开始生成数据,指标信号将添加到支持 OpenTelemetry Metrics 模式格式的 OpenSearch 索引中。
  2. Metrics 页面上,从 Data sources 下拉菜单中选择 Otel-Index,并从 OTel index 下拉菜单中选择 Simple Schema for Observability Index。此时将显示一个可视化效果,如下图所示。

OTel metrics dashboard


可视化远程集群中的指标

2.14 版本引入

您可以使用 Metrics 工具查看远程 OpenSearch 集群中的指标。选择右上角工具栏上的数据库图标,然后从 DATA SOURCES 下拉菜单中选择一个集群,如下图所示。您可以从本地集群切换到远程集群。

Switching clusters using the Metrics analytics tool

您还可以将来自其他源的指标可视化与本地指标可视化一起查看。从 DATA SOURCES 下拉菜单中,选择远程指标可视化,将其添加到仪表板上已显示的可视化组中。示例仪表板如下图所示。

Metrics dashboard

要了解数据源的多集群支持,请参阅 启用 OpenSearch Dashboards 支持多个 OpenSearch 集群

基于自定义指标创建可视化

您可以使用 OpenSearch 集群收集的指标数据(包括 Prometheus 指标和自定义指标)创建可视化。

要创建这些可视化,请按照以下步骤操作:

  1. 从 OpenSearch Dashboards 主菜单中,导航到 Observability > Metrics > Available Metrics
  2. 选择要添加到可视化中的指标,然后选择 Save
  3. 当系统提示选择 Custom operational dashboards/application(自定义操作仪表板/应用程序)时,选择列出的选项之一。您可以在 Metric Name(指标名称)字段中编辑预定义名称值。
  4. 选择 Save 保存您的可视化。示例可视化如下图所示。

Metrics analytics dashboard with visualizations

为 Prometheus 指标定义 PPL 查询

您可以定义 管道处理语言 (PPL) 查询来与 Prometheus 收集的指标进行交互。以下是一个 Prometheus 指标的 PPL 查询示例:

source = my_prometheus.prometheus_http_requests_total | stats avg(@value) by span(@timestamp,15s), handler, code

基于 PPL 查询创建自定义可视化

要基于 PPL 查询创建自定义可视化,请按照以下步骤操作:

  1. Logs 页面,选择 > Event Explorer
  2. Explorer 页面上,输入您的 PPL 查询并选择 Run。然后选择 Save
  3. 当系统提示选择 Custom Operational Dashboards/Application(自定义操作仪表板/应用程序)时,选择列出的选项之一。您可以选择编辑 Metric Name(指标名称)字段中的预定义名称值,并选择将可视化保存为指标。
  4. 选择 Save 保存您的自定义可视化。

只有包含时间序列可视化和统计信息或 span 信息的查询才能保存为指标,如下图所示。

Saving queries as metrics