Allow STDOUT overrides for AgentBasedEnvironments #147
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #, if available: None
Description of changes:
Overview
I was looking through the docs and I noticed that if I have the
awslogs
log driver enabled for ECS and Fargate, I can just output the embedded metric logs to STDOUT. The only way I found to do this was to override the environment toLocal
and set the required dimensions with environment variables so they don't becomeUnknown
.Another issue with this method is that I lose all of the container context that the ECSEnvironment provides and I would like to have that.
This change introduces a new environment variable called
WRITE_TO_STDOUT
where if it's set totrue
, it will override theAgentSink
and return aConsoleSink
in theAgentBasedEnvironment
regardless of whichAgentBasedEnvironment
you use.I went this direction because it felt like I would need to do some more potentially contentious refactoring around the environments to make an
ECSStdoutEnvironment
and would need to update the probe in theECSEnvironment
to verify that the cloudwatch agent is available (which I currently don't have the environment setup to test)Lmk if you think otherwise or if you have another idea to get this done
Testing
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.