CartoDB-SQL-API/doc/metrics.md

32 lines
2.0 KiB
Markdown

CartoDB-SQL-API metrics
=======================
## Timers
- **sqlapi.query**: time to return a query resultset from the API, splitted into:
+ **sqlapi.query.init**: time to prepare params from the request
+ **sqlapi.query.getDatabaseName**: time to retrieve the database associated to the query
+ **sqlapi.query.verifyRequest_apikey**: time to retrieve user and verify access with api key
+ **sqlapi.query.verifyRequest_oauth**: time to retrieve user and verify access with oauht
+ **sqlapi.query.getUserDBHost**: time to retrieve the host for the database
+ **sqlapi.query.getUserDBPass**: time to retrieve the user password for the database connection
+ **sqlapi.query.queryExplain**: time to retrieve affected tables from the query
+ **sqlapi.query.setHeaders**: time to set the headers
+ **sqlapi.query.sendResponse**: time to start sending the response.
+ **sqlapi.query.finish**: time to handle an exception
+ **sqlapi.query.startStreaming**: (json) time to start streaming, from the moment the query it was requested.
* It's not getting into graphite right now.
+ **sqlapi.query.gotRows**: (json) Time until it finished processing all rows in the resultset.
* It's sharing the key with pg so stats in graphite can have mixed numbers.
+ **sqlapi.query.endStreaming** (json) Time to finish the preparation of the response data.
* It's not getting into graphite right now.
+ **sqlapi.query.generate**: (ogr) Time to prepare and generate a response from ogr
+ **sqlapi.query.gotRows**: (pg) Time until it finished processing all rows in the resultset.
* It's sharing the key with json so stats in graphite can have mixed numbers.
+ **sqlapi.query.packageResult**: (pg) Time to transform between different formats
* It's not getting into graphite right now.
+ **sqlapi.query.eventedQuery**: (pg) Time to prepare and execute the query
## Counters
- **sqlapi.query.success**: number of successful queries
- **sqlapi.query.error**: number of failed queries