-
Notifications
You must be signed in to change notification settings - Fork 520
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(fargate): use adot image for otel #2481
Conversation
c8c6757
to
62480cd
Compare
18e76ee
to
14f399b
Compare
66b5cb3
to
c22c38e
Compare
return resolve(context); | ||
} | ||
} | ||
); | ||
}); | ||
} | ||
|
||
async function createADOTDefinitionIfNeeded(context) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As we agreed @hassy , I'm filtering the publish-metrics
config in a separate function here before resolving the config and env vars for ADOT.
However maybe it can be moved into the resolveADOTConfigSettings
to allow for better separation of concerns: everything publish-metrics
related would get done on publish-metrics
side , and this function only does run-cluster
type stuff (ssm, task definition, etc) ? Let me know.
124163b
to
502753f
Compare
New and removed dependencies detected. Learn more about Socket for GitHub ↗︎
🚮 Removed packages: npm/artillery-plugin-fake-data@1.0.2 |
Description
Running AWS Distro for OpenTelemetry (ADOT) as a sidecar in Fargate in place of the Datadog agent in order to enable supporting multiple
publish-metrics
reporters rather than just Datadog.Context
Some observability platforms can't ingest OTLP data directly, but through either OpenTelemetry Collector or their own agent. Currently Artillery AWS Fargate runs support only one such platform - Datadog, by running the Datadog agent as a sidecar.
In order to enable providing Fargate support for other such reporters (primarily Cloudwatch reporter), in this PR the Datadog agent is replaced by ADOT.
ADOT provides an array of built-in components including exporters for Datadog, AWS X-Ray, Cloudwatch, Splunk (SAML and SignalFX), Prometheus etc. Due to this implementing ADOT will enable providing tracing support for multiple platforms with one sidecar.
Implementation
Multiple components needed to be implemented in order to configure and run ADOT:
run-cluster.js
file ( 3c03ac3, 17d0268, e2b9e68, ef54217, 3c03ac3) in order to:SSM parameter whose value is the full custom configuration is created
The
AOT_CONFIG_CONTENT
variable that points to the created parameter is set in the ADOT task definitionAny environment variables required by the custom config are provided in task overrides
The SSM parameter is deleted on cleanup
Testing
Playwright
andHTTP
engine scenarios.publish-metrics
side for functions invendor-adot.js
applyScriptChanges
function responsible for resolving templates in config