hi guys i'm trying to put Log on amazon CloudWatchLogs like this:
$response2 = $amzonLoger->putLogEvents([
'logGroupName' => 'myGroup',
'logStreamName' => 'myStream',
'logEvents' => [
[
'timestamp' => time(),
'message' => 'message'
],
],
'sequenceToken' => lastToken,
]);
var_dump($response2);
but always i've this response :
bject(Guzzle\Service\Resource\Model)#289 (2) { ["structure":protected]=> NULL ["data":protected]=> array(2) { ["nextSequenceToken"]=> string(56) "495401145812734324234234236420825819917076850" ["rejectedLogEventsInfo"]=> array(1) { ["tooOldLogEventEndIndex"]=> int(1) } } }
can u help me understanding what does mean ["rejectedLogEventsInfo"]=> array(1) { ["tooOldLogEventEndIndex"]=> int(1), I will be very grateful for the help.
Your error is telling you that the timestamp you are using is not good.
http://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html
From doc:
If using current time and current time is correct you may be in a different time zone (that is more than 2 hours ahead of UTC). Use UTC time for events timestamp.
Cloudwatch API expects timestamp in epoch microseconds, not seconds. Took me a while to figure that out. Thanks to the PHP snippet above.
ok guys i found the solution adding this line instead of
time()
function of php . following this example cloudWatchLogs.i hope that this can help someone on the future thanks.