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