Apm agent for databases


(sebastian) #1

Hi all, i'm newbie for this solution, there is a list for clients

APM Node.js Agent [1.x] — other versions
APM Python Agent [2.x] — other versions
APM Ruby Agent [1.x] — other versions
APM Real User Monitoring JavaScript Agent [1.x] — other versions
APM Go Agent [0.5] — other versions
APM Java Agent [0.7] — other versions

but, is there any agent or support for databases?
thanks for your time, Best Regards


(Thomas Watson) #2

All our agents will instrument queries to your database from the application. It will measure the time each query takes and a few other things, but what goes on inside the database while the query is performed is not instrumented by Elastic APM.

Will that cover your use-case, or do you want to monitor the database it self in more detail?


(Thomas Watson) #3

Btw, each agent supports a specific list of databases. The list varies a bit between agents, but you can see each of the lists for Node.js, Java and Go here:


(sebastian) #4

Hi Wa7son,

so if i install the node.js agent, i'm going to have information about
but from what you say, i can take the time of the query but i cannot see the what is inside the query, but how i identify one query of the other? it's shows an id or the query itself?

Module Version Note
cassandra-driver
elasticsearch-js
graphql
handlebars
ioredis
mongodb-core
mongodb
mongojs
mongoose
mysql
pg
tedious

yes i want to monitor details about the databases and maybe there is more types of databases about maybe oracle and something like that


(Thomas Watson) #5

The Node.js agent currently does not support Oracle. There's an open issue for it that I suggest you add a +1 on so that we know that more people want this :slight_smile:

If you use one of our supported databases, our agents will also show you the query that was performed and from where in your code the query was called.

Say you use the pg module to query PostgreSQL and your Node.js code looks like so:

const sql = 'INSERT INTO users(name, email) VALUES($1, $2) RETURNING *'
const values = ['brianc', 'brian.m.carlson@gmail.com']

client.query(sql, values, (err, res) => {
  ...
})

The span will have a stack trace pointing to the client.query(...) line and it will also contain the value of the sql argument. The values are not recorded for privacy reasons.


(sebastian) #6

Hi Wa7son, thanks a lot for your help, now i understand i little more how the apm agent work
i already give +1 to the open git issue

thanks for your time and help!
best regards


(system) #7

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.