SiteToSiteMetricsReportingTask

文档中心 › 组件索引 › SiteToSiteMetricsReportingTask

SiteToSiteMetricsReportingTask Reporting Task

类型全限定名:cn.org.acal.lynxus.reporting.SiteToSiteMetricsReportingTask

所属 Bundle:cn.org.acal.lynxus:lynxus-site-to-site-reporting-nar:2.11.8

描述

使用Site-to-Site协议发布与 Ambari 报告任务相同的指标。

标签

statusmetricssitesite to site

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
目标 URL目标 Lynxus 实例的 URL,如果是集群,则为 http(s)://host:port/lynxus 格式的逗号分隔地址列表。此目标 URL 仅用于发起站点到站点连接。此报告任务发送的数据将在目标的所有节点上进行负载均衡(如果是集群)。
支持表达式语言:是(仅使用环境/系统变量求值)
输入端口名称要将数据传送到的输入端口的名称。
支持表达式语言:是(仅使用环境/系统变量求值)
SSL 上下文服务控制器服务 API:
SSLContextProvider
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
与目标通信时使用的 SSL 上下文服务。如果未指定,通信将不安全。
实例 URLhttp://${hostname(true)}:8080/lynxus要在每个事件的内容 URI 中使用的此实例的 URL。
支持表达式语言:是(仅使用环境/系统变量求值)
压缩事件true
  • true
  • false
指示是否压缩正在发送的数据。
通信超时30 secs指定在确定发生错误并取消事务之前等待来自目标的响应的时间
传输协议RAW
  • RAW
  • HTTP
指定用于站点到站点通信的传输协议。
Proxy Configuration Service控制器服务 API:
ProxyConfigurationService
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定代理配置 Controller Service 来代理网络请求。
记录写入器控制器服务 API:
RecordSetWriterFactory
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定用于写出记录的Controller Service。
包含空值false
  • true
  • false
指示记录中是否应包含空值。默认为 false
主机名${hostname(true)}要包含在指标中的此 Lynxus 实例的主机名
支持表达式语言:是(仅使用环境/系统变量求值)
应用程序 IDlynxus要包含在指标中的应用程序 ID
支持表达式语言:是(仅使用环境/系统变量求值)
输出格式ambari-format
  • Ambari 格式 — 指标将按照 Ambari Metrics API 的格式进行格式化。请参阅使用文档中的其他详细信息。
  • 记录格式 — 指标将使用此报告任务的 Record Writer 属性进行格式化。请参阅使用文档中的其他详细信息以了解默认 Schema 的描述。
将用于指标的输出格式。如果选择了 记录格式,则必须提供记录写入器。如果选择了 Ambari 格式,则记录写入器属性应为空。

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

详细说明

SiteToSiteMetricsReportingTask

Site-to-Site Metrics Reporting Task 允许用户把 Lynxus 的指标(与 Ambari Reporting Task 相同) 发布到同一实例或另一个 Lynxus 实例。这提供了很大的灵活性,因为用户可以利用 Lynxus 中所有可用的 Processor 来处理或分发这些数据。

Ambari 格式

有两种可用的输出格式。第一种是 Ambari Metrics Collector API 定义的 Ambari 格式,是一种带动态键的 JSON。如果使用这种格式,你可能会对下面用于转换数据的 Jolt 规范感兴趣。

[
  {
    "operation": "shift",
    "spec": {
      "metrics": {
        "*": {
          "metrics": {
            "*": {
              "$": "metrics.[#4].metrics.time",
              "@": "metrics.[#4].metrics.value"
            }
          },
          "*": "metrics.[&1].&"
        }
      }
    }
  }
]

这会把下面的示例:

{
  "metrics": [
    {
      "metricname": "jvm.gc.time.G1OldGeneration",
      "appid": "lynxus",
      "instanceid": "8927f4c0-0160-1000-597a-ea764ccd81a7",
      "hostname": "localhost",
      "timestamp": "1520456854361",
      "starttime": "1520456854361",
      "metrics": {
        "1520456854361": "0"
      }
    },
    {
      "metricname": "jvm.thread_states.terminated",
      "appid": "lynxus",
      "instanceid": "8927f4c0-0160-1000-597a-ea764ccd81a7",
      "hostname": "localhost",
      "timestamp": "1520456854361",
      "starttime": "1520456854361",
      "metrics": {
        "1520456854361": "0"
      }
    }
  ]
}

转换为:

{
  "metrics": [
    {
      "metricname": "jvm.gc.time.G1OldGeneration",
      "appid": "lynxus",
      "instanceid": "8927f4c0-0160-1000-597a-ea764ccd81a7",
      "hostname": "localhost",
      "timestamp": "1520456854361",
      "starttime": "1520456854361",
      "metrics": {
        "time": "1520456854361",
        "value": "0"
      }
    },
    {
      "metricname": "jvm.thread_states.terminated",
      "appid": "lynxus",
      "instanceid": "8927f4c0-0160-1000-597a-ea764ccd81a7",
      "hostname": "localhost",
      "timestamp": "1520456854361",
      "starttime": "1520456854361",
      "metrics": {
        "time": "1520456854361",
        "value": "0"
      }
    }
  ]
}

Record 格式

第二种格式利用 Lynxus 的记录框架,用户可以定义 Record Writer,直接指定输出格式和数据, 前提是输入 schema 如下:

{
  "type": "record",
  "name": "metrics",
  "namespace": "metrics",
  "fields": [
    {
      "name": "appid",
      "type": "string"
    },
    {
      "name": "instanceid",
      "type": "string"
    },
    {
      "name": "hostname",
      "type": "string"
    },
    {
      "name": "timestamp",
      "type": "long"
    },
    {
      "name": "loadAverage1min",
      "type": "double"
    },
    {
      "name": "availableCores",
      "type": "int"
    },
    {
      "name": "FlowFilesReceivedLast5Minutes",
      "type": "int"
    },
    {
      "name": "BytesReceivedLast5Minutes",
      "type": "long"
    },
    {
      "name": "FlowFilesSentLast5Minutes",
      "type": "int"
    },
    {
      "name": "BytesSentLast5Minutes",
      "type": "long"
    },
    {
      "name": "FlowFilesQueued",
      "type": "int"
    },
    {
      "name": "BytesQueued",
      "type": "long"
    },
    {
      "name": "BytesReadLast5Minutes",
      "type": "long"
    },
    {
      "name": "BytesWrittenLast5Minutes",
      "type": "long"
    },
    {
      "name": "ActiveThreads",
      "type": "int"
    },
    {
      "name": "TotalTaskDurationSeconds",
      "type": "long"
    },
    {
      "name": "TotalTaskDurationNanoSeconds",
      "type": "long"
    },
    {
      "name": "jvmuptime",
      "type": "long"
    },
    {
      "name": "jvmheap_used",
      "type": "double"
    },
    {
      "name": "jvmheap_usage",
      "type": "double"
    },
    {
      "name": "jvmnon_heap_usage",
      "type": "double"
    },
    {
      "name": "jvmthread_statesrunnable",
      "type": [
        "int",
        "null"
      ]
    },
    {
      "name": "jvmthread_statesblocked",
      "type": [
        "int",
        "null"
      ]
    },
    {
      "name": "jvmthread_statestimed_waiting",
      "type": [
        "int",
        "null"
      ]
    },
    {
      "name": "jvmthread_statesterminated",
      "type": [
        "int",
        "null"
      ]
    },
    {
      "name": "jvmthread_count",
      "type": "int"
    },
    {
      "name": "jvmdaemon_thread_count",
      "type": "int"
    },
    {
      "name": "jvmfile_descriptor_usage",
      "type": "double"
    },
    {
      "name": "jvmgcruns",
      "type": [
        "long",
        "null"
      ]
    },
    {
      "name": "jvmgctime",
      "type": [
        "long",
        "null"
      ]
    }
  ]
}