帮助手册

Data Lake - 自定义数据源监视器

Data Lake 中的自定义数据源选项允许您通过 API 或 SDK 从应用程序推送数据,实现无缝监控与分析,让您完全掌控自定义指标。

入门

按照以下步骤通过自定义数据源推送数据:

  1. 单击自定义数据源旁的立即集成开始配置。
  2. 添加 Data Lake 监视器页面,填写以下信息:
    • Data Lake 名称:为监视器提供唯一名称。
    • 关联监视器组:从下拉列表中选择监视器组,对监视器进行逻辑分组。有关创建组的详细信息,请参阅监视器组
    • 包含标签:选择如何筛选通过 SDK/API 推送的数据。
      • 所有标签:推送所有可用数据。
      • 以特定词开头:推送以特定词开头的数据。
      • 包含:推送包含特定关键词的数据。
      • 以特定词结尾:推送以特定词结尾的数据。
  3. 单击保存
    • 您将被重定向到仪表板,在那里可以看到新创建的监视器。
    • 配置完成后,您需要推送数据到新添加的监视器。

向已创建的监视器导入数据

您可以通过 SDK 或 API 推送数据。

通过 SDK 推送数据

此选项用于发送原始数据(未聚合数据),聚合工作将在服务端完成。

通过 Java SDK 推送数据
使用 Java SDK 向 Data Lake 推送数据

第一步:将 SDK 添加/配置到您的应用程序

注意

您的应用程序中必须包含 SLF4J jar 用于日志记录。如果尚未添加该 jar,请先添加。

  1. 访问 Maven 中央仓库
  2. 根据您的构建框架将依赖项添加到应用程序中。 
    注意
    您也可以下载 SDK jar 并手动添加到应用程序中。

第二步:创建 SDK MetricProvider 对象

使用 MetricProviderBuilder 类创建带有 Site24x7 导出器的 MetricProvider 对象,该对象用于推送指标数据。

注意

对于单个应用程序,只有一个许可证密钥生效。即使在同一应用程序中创建新对象,也将继续使用初始许可证密钥,而不会获取新的许可证密钥。

// Create Metric provider using the following code snippet
MetricProvider provider = new MetricProvider("");
DataLakeProvider dataLake = provider.createDataLake(""); // The app key associated with the Data-lake monitor.
DataLakeResource resource = dataLake.createResource(new HashMap(){{
put("host", "192.168.10.254");
}});// Set of tags to associate with a list of metrics created using the appkey resource

// Push data using different methods like Count, Rate, Gauge, Histogram.
resource.gauge(
"ResponseTime", // The metric name (field name)
180, // The numerical value of the metric
"ms",// Unit of the metric (Default unit will be Count)
new HashMap(){{
	put("host", "192.168.10.254");
}}); // Set of tags to be associated with the metric


第三步:向 SDK 提供原始数据

指定准确的方法以正确聚合已定义字段的值。

Count(计数)

metricProvider.count(
    "<app key>", // The app key associated with the Data-lake monitor
    "db_write", // The metric name (field name)
    2.0, // Numerical value of the metric
    Collections.singletonMap("host", "192.168.10.254") // Set of tags to associate with the metric
);

Rate(速率)

metricProvider.rate(
 "<app key>", 
 "disk_free",
  16868264.0,
  Collections.singletonMap("host", "192.168.10.254")
);

Gauge(仪表)

metricProvider.gauge(
 "<app key>", 
 "disk_free",
  16868264.0,
  Collections.singletonMap("host", "192.168.10.254")
);

Histogram(直方图)

metricProvider.histogram(
 "<app key>", 
 "disk_free",
  16868264.0,
  Collections.singletonMap("host", "192.168.10.254")
);

其中,

  • <app_key> 可从 Show Post URL 选项获取
  • disk_free 是数值字段
  • Collections.singletonMap ("host", "192.168.10.254") 是字符串字段,为可选项
  • 单位的默认值如下:
    • ms 用于时间
    • bytes 用于大小
    • one 用于计数
通过 Node.js SDK 推送数据
使用 Node.js SDK 向 Data Lake 推送数据

使用 Node.js SDK 将自定义指标推送到 Site24x7 Data Lake 进行监控和分析。

前提条件

  • Node.js 16 或更高版本
  • Node Package Manager (NPM)
  • 具有有效 app key 的 Site24x7 账户

第一步:安装 SDK

在项目根目录下使用以下命令安装 SDK:

npm install site24x7_datalake_sdk

第二步:配置

创建或更新 .env 文件:

Site24x7LicenseKey="your-license-key-here"
APP_PORT=3015

第三步:导入 SDK 并创建 Data Lake

在应用程序中引入 SDK:

const metrics = require('site24x7_datalake_sdk');

appKey 替换为从 Data Lake 监视器获取的 app key:

const appKey = 'your-actual-app-key-here';

按如下方式创建 Data Lake:

const dataLake = metrics.createDataLake(appKey);

第四步:创建资源标签

创建带有标签的资源,与使用此 app key 推送的所有指标关联:

const dataLakeResource = dataLake.createResource({
  resourcetag1: 'resourcetag1',
  resourcetag2: 'resourcetag2',
});
注意

您可以根据应用程序需求自定义这些标签。

第五步:推送原始指标数据

指定适当的指标类型以确保值的正确聚合。

Count(计数)

用于记录事件发生次数。

dataLakeResource.count({
  name: "event_occurrences",
  value: 10,
  unit: "events",
  tags: {
    source: "api",
    type: "user_action"
  }
});

Gauge(仪表)

表示随时间变化的值,反映任意时刻的当前状态。

dataLakeResource.gauge({
  name: "memory_usage",
  value: 75,
  unit: "MB",
  tags: {
    server: "web-server-1",
    environment: "production"
  }
});

Rate(速率)

用于记录随时间测量的值。

dataLakeResource.rate({
  name: "requests_per_second",
  value: 250,
  unit: "requests",
  tags: {
    source: "load_balancer",
    region: "us-east"
  }
});

Histogram(直方图)

用于记录统计分布。

dataLakeResource.histogram({
  name: "response_times",
  value: 120,
  unit: "ms",
  tags: {
    endpoint: "/api/users",
    method: "GET"
  }
});

参数说明

参数 类型 是否必填 默认值 说明
name string - 指标名称
value number - 记录的值
unit string one 度量单位
tags object {} 指标的附加标签

快速检查

  • 运行 npm install 以确保所有依赖项已安装
  • 从 Site24x7 验证许可证密钥app key
  • 在应用程序根目录中检查 site24x7data 文件夹以查看 SDK 日志

通过 API 推送数据

此选项用于推送已聚合的数据。

  1. 在列表中找到 Data Lake 监视器并单击。
  2. 将鼠标悬停在监视器名称旁边的汉堡图标(汉堡图标)上。
  3. 从下拉菜单中选择 Show Post URL
  4. 按照屏幕上的说明操作。
    注意
    示例 Payload:
    [
       {
          "metrics":[
             {
                "unit":"ms",
                "datavalues":[
                   {
                      "p0":0,
                      "p99":16,
                      "p100":17,
                      "time_stamp":"1739341985265",
                      "count":10,
                      "p50":12,
                      "value":100,
                      "p95":15,
                      "tags":{
                         "metric_tag_2":"metricTag2Data",
                         "metric_tag_1":"metricTag1Data"
                      }
                   }
                ],
                "name":"MetricName",
                "type":"rate",
                "description ":"Sample Description"
             }
          ],
          "tags":{
             "group_tag_1":"groupTag1data",
             "group_tag_2":"groupTag2data"
          }
       }
    ]

    其中,

    • value:指标的处理后值。
    • count:用于计算值的区间内记录的指标数量。若未提供,默认值为 1。

支持的单位

类型 支持的单位 基本单位
大小 bytes, kb, mb, gb, tb bytes
时间 us, ms, sec, min, hr, day ms
计数 one, thousand, lakh, million, billion, trillion one
注意
  • 即使用户以不同单位(如 gb、min、billion)发送值,也会自动转换为基本单位(bytes、ms、one)。
  • 如果用户发送的单位不在上表中,则自动视为计数类型,单位计为 one。

相关文章

添加 Data Lake 监视器

添加 REST API 指标监视器

Data Lake 性能指标

Data Lake 仪表板

添加自定义属性监视器

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!