【问题标题】:AWS Java SDK : Cloudwatch Logs : trouble getting startedAWS Java SDK:Cloudwatch 日志:入门困难
【发布时间】:2017-04-18 21:15:10
【问题描述】:

好的,所以我很难找到关于我正在尝试做的任何明确的资源。

目前我正在使用 AWS CLI 将自定义日志事件发送到 Cloudwatch,并且我将日志组订阅到 ElasticSearch,以便在 Kibana 中进行监控。我正在使用 bash 脚本,并将 JSON 字符串发送到 Cloudwatch。简单的用例,最终拨打这样的电话:

aws logs put-log-events --log-group-name "${groupname}" --log-stream-name "${streamname}" --log-events "[{\"timestamp\":${logtimestamp},\"message\":\"${timestamp} {\\\"metric1\\\":\\\"${value1}\\\",\\\"metric2\\\":\\\"${value2}\\\"}]"

为了可读性,我这样发送 JSON:

[
  {
    "timestamp":${logtimestamp},
    "message":"${timestamp {\"metric1\":\"${value1}\",\"metric2\":\"${value2}\"}"
  }
]

“消息”字段中的序列化 JSON 是 ElasticSearch 订阅获取的内容,并用于在 Kibana 中创建图表。这显然不是一个干净的解决方案,所以我想迁移到 AWS Java SDK。

我很难找到有关如何使用 AWS Java SDK 将日志发送到 Cloudwatch 的权威资源。当 Cloudwatch 文档中的所有内容都是关于“警报”时,我也感到困惑 - 我只想像使用 CLI 一样向 Cloudwatch 发送一些 JSON。

任何指向类似用例的一些资源的指针?

【问题讨论】:

    标签: java amazon-web-services aws-sdk amazon-cloudwatchlogs


    【解决方案1】:

    CloudWatch Metrics and Alarms 和 CloudWatch Logs 实际上是两组独立的服务,都被标记为 CloudWatch。您可能已经注意到,在 AWS CLI 中,CloudWatch Logs 的命令被分组在logs 服务下,而不是cloudwatch 服务下。

    这种区别在 AWS Java 开发工具包中也是如此——访问 CloudWatch Logs API 的 Java 客户端是 AWSLogsClient,而不是 CloudWatch 客户端。

    要创建新的日志组,请使用createLogGroup

    要为日志组创建新的日志流,请使用createLogStream

    要将新日志写入日志组,请使用putLogEvents

    进一步阅读

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-12
      • 1970-01-01
      • 2013-07-03
      • 2018-08-08
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多