expand task id regex for fargate

This commit is contained in:
Rafael Garcia 2019-02-27 23:15:19 +00:00
parent aeb8af04e8
commit 18e6920dea
2 changed files with 22 additions and 1 deletions

View file

@ -426,7 +426,7 @@ func ParseAndEnhance(line string, env string) (map[string]interface{}, error) {
const containerMeta = `([a-z0-9-]+)--([a-z0-9-]+)\/` + // env--app const containerMeta = `([a-z0-9-]+)--([a-z0-9-]+)\/` + // env--app
`arn%3Aaws%3Aecs%3Aus-(west|east)-[1-2]%3A[0-9]{12}%3Atask%2F` + // ARN cruft `arn%3Aaws%3Aecs%3Aus-(west|east)-[1-2]%3A[0-9]{12}%3Atask%2F` + // ARN cruft
`([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})` // task-id `([0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|[a-z0-9]{32})` // task-id (ECS, both EC2 and Fargate)
var containerMetaRegex = regexp.MustCompile(containerMeta) var containerMetaRegex = regexp.MustCompile(containerMeta)

View file

@ -7,7 +7,9 @@ import (
"encoding/json" "encoding/json"
"testing" "testing"
"github.com/Clever/amazon-kinesis-client-go/decode"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
) )
func TestUnpacking(t *testing.T) { func TestUnpacking(t *testing.T) {
@ -158,6 +160,17 @@ func TestSplitLambda(t *testing.T) {
[]byte(`2017-06-26T23:32:23.285001+00:00 aws-lambda env--app/arn%3Aaws%3Aecs%3Aus-east-1%3A999988887777%3Atask%2F12345678-1234-1234-1234-555566667777[1]: Example message that doesn't contain a request ID`), []byte(`2017-06-26T23:32:23.285001+00:00 aws-lambda env--app/arn%3Aaws%3Aecs%3Aus-east-1%3A999988887777%3Atask%2F12345678-1234-1234-1234-555566667777[1]: Example message that doesn't contain a request ID`),
} }
assert.Equal(t, expected, lines) assert.Equal(t, expected, lines)
for i, line := range expected {
enhanced, err := decode.ParseAndEnhance(string(line), "")
require.Nil(t, err)
assert.Equal(t, "aws-lambda", enhanced["hostname"])
assert.Equal(t, "env", enhanced["container_env"])
assert.Equal(t, "app", enhanced["container_app"])
if i != len(expected)-1 /* last line doesn't have a request ID */ {
assert.Equal(t, "8edbd53f-64c7-4a3c-bf1e-efeff40f6512", enhanced["container_task"])
}
}
} }
func TestSplitFargate(t *testing.T) { func TestSplitFargate(t *testing.T) {
@ -180,6 +193,14 @@ func TestSplitFargate(t *testing.T) {
[]byte(`2017-06-26T23:32:23.285001+00:00 aws-fargate production--clever-com-router/arn%3Aaws%3Aecs%3Aus-east-1%3A999988887777%3Atask%2F27b22d5d68aa4bd3923c95e7f32a3852[1]: Starting haproxy: haproxy.`), []byte(`2017-06-26T23:32:23.285001+00:00 aws-fargate production--clever-com-router/arn%3Aaws%3Aecs%3Aus-east-1%3A999988887777%3Atask%2F27b22d5d68aa4bd3923c95e7f32a3852[1]: Starting haproxy: haproxy.`),
} }
assert.Equal(t, expected, lines) assert.Equal(t, expected, lines)
for _, line := range expected {
enhanced, err := decode.ParseAndEnhance(string(line), "")
require.Nil(t, err)
assert.Equal(t, "aws-fargate", enhanced["hostname"])
assert.Equal(t, "production", enhanced["container_env"])
assert.Equal(t, "clever-com-router", enhanced["container_app"])
assert.Equal(t, "27b22d5d68aa4bd3923c95e7f32a3852", enhanced["container_task"])
}
} }
func TestSplitDefault(t *testing.T) { func TestSplitDefault(t *testing.T) {