I have a NodeJS stack pushing logs and APM info to Logstash and then to elasticsearch/kibana hosted on Elastic Cloud. For some reason, the APM trace is missing the full trace. At the very least, I'd like to see MongoDB instrumentation (in the below example screenshot, that request is making multiple requests to MongoDB that should be visible). I'll post as much context as I think is relevant, but please let me know if there is any config/setup that would be helpful to see. I have a hunch that the issue is related to using Parse Server which isn't natively supported by Elastic APM but it's just a layer over Express and I've seen other APM (including DataDog and New Relic) instrument the requests in their entirety out of the box.
Web Server: NodeJS 16.14.0
Web Server Framework: ExpressJS 4.17.1 with Parse Server 5.4.0
APM Transport tool: elastic-apm-node 3.42.0
Database: MongoDB 5.0.14
Elasticsearch/Kibana Host: Elastic Cloud
Elasticsearch version: 8.6.2
Logstash: Deployed with Docker container (v8.6.2)
APM Initialization
// Initialize Elastic APM
const environment = 'localhost'
export const apm = elasticApm.start({
environment,
logLevel: 'info',
})
logstash.conf
input {
tcp {
port => "10000"
}
}
filter {
json {
source => "message"
}
}
output {
elasticsearch {
cloud_id => "${CLOUD_ID}"
cloud_auth => "${CLOUD_AUTH}"
data_stream => "true"
}
stdout {
codec => rubydebug
}
}
logstash.yml
http.host: "0.0.0.0"