So just for the context I have a web ap I needed to performance test. Initially it was easy, I created a instrumentation file and a collector that I set up with following collector documentation. The collector was configured to use sentry exporter and export data to sentry. It worked without any issues.
Now I had to refactor the backend to consist of AWS lambda function. And all of the Opentelemetry documented methods dont work. In some cases data is just not being sent at all. In some cases only small percent of the data is sent.
I need to get a somewhat detailed trace of the request coming in and gong trough the lambda functions.
What did I try:
- Using Opentelemetry instrumentation layer with a collector layer
Result: Collector throwing error that Sentry is not a valid exporter even though I had defined it in the config. Not sure why the documentation mentions you have to set custom ENV variables for the custom exporters to work? Are there specific variable names or data that has to be defined? Just by defining the exporter as:
exporters:
sentry:
dsn: <sentry.dns>
produced this: {
“error”: “failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:nn* error decoding ‘exporters’: unknown type: “sentry” for id: “sentry” (valid values: [prometheusremotewrite logging otlp otlphttp])”
},
-
Defining instrumentation wrapper for each lambda with such setup (View image)
enter image description here
Result:
The AwsInstrumentation does absolutely nothing, no instrumentation whatsoever. Only instrumentation is from the lambda instrumentation, which instruments lambda with a single span.
When attempting to get at least single span per lambda, by creating a wrapperfile for the next lambda in line with the same configuration for otel, no data from the ‘database-lambda’ whatsoever. Only the firs lambda called gets its data collected.
George is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.