小编Fur*_* S.的帖子

CloudWatch日志表现得很奇怪

我有两个带有多行日志语句的日志文件.它们在每个日志语句的开头都具有相同的日期时间格式.配置如下所示:

state_file = /var/lib/awslogs/agent-state

[/opt/logdir/log1.0]
datetime_format = %Y-%m-%d %H:%M:%S
file = /opt/logdir/log1.0
log_stream_name = /opt/logdir/logs/log1.0
initial_position = start_of_file
multi_line_start_pattern = {datetime_format}
log_group_name = my.log.group


[/opt/logdir/log2-console.log]
datetime_format = %Y-%m-%d %H:%M:%S
file = /opt/logdir/log2-console.log
log_stream_name = /opt/logdir/log2-console.log
initial_position = start_of_file
multi_line_start_pattern = {datetime_format}
log_group_name = my.log.group
Run Code Online (Sandbox Code Playgroud)

cloudwatch日志代理正在将log1.0日志正确发送到我在cloudwatch上的日志组,但是,它没有发送log2-console.log的日志文件.

awslogs.log说:

2016-11-15 08:11:41,308 - cwlogs.push.batch - WARNING - 3593 - Thread-4 - Skip event: {'timestamp': 1479196444000, 'start_position': 42330916L, 'end_position': 42331504L}, reason: timestamp is more than 2 hours in future.
2016-11-15 08:11:41,308 - cwlogs.push.batch - WARNING …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services cloudwatch amazon-cloudwatch amazon-cloudwatchlogs

9
推荐指数
2
解决办法
7672
查看次数

AWS日志代理设置

我们最近在其中一台测试服务器上设置了AWS日志代理。我们的日志文件通常包含多行事件。例如,我们的日志事件之一是:

[10-Jun-2016 07:30:16 UTC] SQS Post Response: Array
(
    [Status] => 200
    [ResponseBody] => <?xml version="1.0"?><SendMessageResponse xmlns="http://queue.amazonaws.com/doc/2009-02-01/"><SendMessageResult><MessageId>053c7sdf5-1e23-wa9d-99d8-2a0cf9eewe7a</MessageId><MD5OfMessageBody>8e542d2c2a1325a85eeb9sdfwersd58f</MD5OfMessageBody></SendMessageResult><ResponseMetadata><RequestId>4esdfr30-c39b-526b-bds2-14e4gju18af</RequestId></ResponseMetadata></SendMessageResponse>
)
Run Code Online (Sandbox Code Playgroud)

日志代理参考文档说对此类日志使用“ multi_line_start_pattern”选项。我们的AWS Log代理配置如下:

[httpd_info.log]
file = /var/log/httpd/info.log*
log_stream_name = info.log
initial_position = start_of_file
log_group_name = test.server.name
multi_line_start_pattern = '(\[)+\d{2}-[a-zA-Z]{3}+-\d{4}'
Run Code Online (Sandbox Code Playgroud)

但是,日志代理报告会中断上述事件和类似事件。将其报告给CloudWatch Logs的方式如下:

事件1:

[10-Jun-2016 11:21:26 UTC] SQS Post Response: Array
Run Code Online (Sandbox Code Playgroud)

事件2:

( [Status] => 200 [ResponseBody] => <?xml version="1.0"?><SendMessageResponse xmlns="http://queue.amazonaws.com/doc/2009-02-01/"><SendMessageResult><MessageId>053c7sdf5-1e23-wa9d-99d8-2a0cf9eewe7a</MessageId><MD5OfMessageBody>8e542d2c2a1325a85eeb9sdfwersd58f</MD5OfMessageBody></SendMessageResult><ResponseMetadata><RequestId>4esdfr30-c39b-526b-bds2-14e4gju18af</RequestId></ResponseMetadata></SendMessageResponse>
Run Code Online (Sandbox Code Playgroud)

事件3:

)
Run Code Online (Sandbox Code Playgroud)

尽管它只是一个事件。任何线索,这是怎么回事?

amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs

4
推荐指数
1
解决办法
2263
查看次数

Gmail API Watch() 不起作用

我正在关注https://developers.google.com/gmail/api/guides/push 上给出的 Gmail API 推送通知指南。但是,当我尝试从 API 资源管理器创建新手表时,它给出了以下响应:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalidArgument",
    "message": "Invalid topicName does not match projects/google.com:apisexplorerconsole/topics/*"
   }
  ],
  "code": 400,
  "message": "Invalid topicName does not match projects/google.com:apisexplorerconsole/topics/*"
 }
Run Code Online (Sandbox Code Playgroud)

}

我的要求如下:

POST https://www.googleapis.com/gmail/v1/users/myemailaddress/watch?key={YOUR_API_KEY}
{
 "labelIds": [
  "INBOX"
 ],
 "topicName": "projects/my-project-name/topics/my-topic-name"
}
Run Code Online (Sandbox Code Playgroud)

似乎在 Google API 端进行了错误的验证检查。还有其他人面临这个问题吗?

google-api-php-client gmail-api

3
推荐指数
1
解决办法
2695
查看次数

在 JavaScript 中声明私有静态成员变量

我被 JavaScript 中的设计模式所困扰,我想创建一个私有静态成员变量来保持对象计数。沿着这些思路:

var person = function(name){
    //How to persist this value across multiple calls avoiding Globals
    var _personCount = _personCount || 0;
    _personCount++;
    var _name = name;
    getPerson = function(){
          return "Person is: " + _name;
    }
};

person("foo");//_personCount should be 1 after this call
person("bar");//_personCount should be 2 after this call
Run Code Online (Sandbox Code Playgroud)

这个想法类似于私有静态变量,只能由类的内部变量访问

javascript design-patterns

1
推荐指数
1
解决办法
263
查看次数