Commit Graph

23 Commits

Author SHA1 Message Date
Daniel García Aubert
72eb0379e3 Rename 2020-07-01 12:19:19 +02:00
Daniel García Aubert
c1ed382949 Merge branch 'master' into dgaubert/ch87185/log-system-revamp-sql-api 2020-06-30 17:50:10 +02:00
Daniel García Aubert
762a240890 Breaking changes:
- Log system revamp:
  - Logs to stdout, disabled while testing
  - Use header `X-Request-Id`, or create a new `uuid` when no present, to identyfy log entries
  - Be able to set log level from env variable `LOG_LEVEL`, useful while testing: `LOG_LEVEL=info npm test`; even more human-readable: `LOG_LEVEL=info npm t | ./node_modules/.bin/pino-pretty`
  - Be able to reduce the footprint in the final log file depending on the environment
  - Use one logger for every service: Queries, Batch Queries (Jobs), and Data Ingestion (CopyTo/CopyFrom)
  - Stop using headers such as: `X-SQL-API-Log`, `X-SQL-API-Profiler`, and `X-SQL-API-Errors` as a way to log info.
  - Be able to tag requests with labels as an easier way to provide business metrics
  - Metro: Add log-collector utility (`metro`), it will be moved to its own repository. Attaching it here fro development purposes. Try it with the following command `LOG_LEVEL=info npm t | node metro`
  - Metro: Creates `metrics-collector.js` a stream to update Prometheus' counters and histograms and exposes them via Express' app (`:9145/metrics`). Use the ones defined in `grok_exporter`

Announcements:
- Profiler is always set. No need to check its existence anymore
- Unify profiler usage for every endpoint

Bug fixes:
- Avoid hung requests while fetching user identifier
2020-06-30 17:42:59 +02:00
Álvaro Manera
0046480231 move middleware to sql-router 2020-06-22 12:51:35 +02:00
Álvaro Manera
598e7615a5 missing return on error case 2020-06-22 12:50:48 +02:00
Álvaro Manera
a4a100e65a respond with user-id and client in the headers
added headers to the test-client callback to be able to check them
2020-06-22 09:47:22 +02:00
Daniel García Aubert
57be7add68 Do not emit error as it closes the internal DB's connection stream and the Pool needs to keep it open to reuse the the connection 2020-05-19 09:23:48 +02:00
Esther Lozano
aff725f570
Add response time to pubsub events (#646) 2020-03-10 11:27:17 +01:00
Esther Lozano
0a68b48acc
Avoid normalizing empty fields (#645) 2020-02-26 17:58:32 +01:00
Esther Lozano
419adea234
Add pubsub metrics (#642)
* Create middleware and service for pubsub metrics

* Use pubsub middleware for all request

* Replace isEnabled with isDisabled to avoid negation

* Use new headers names

* Add acceptance and unit tests

* Remove commented log calls

* Remove only filters in tests

Remove typo

* Refactor service to ease integration test

* Fix interaction with query controller

* Use middleware at api-router and test all controllers

* Rename user middleware function

* Use sinon latest version

* Create middleware and service for pubsub metrics

* Use pubsub middleware for all request

* Replace isEnabled with isDisabled to avoid negation

* Use new headers names

* Add acceptance and unit tests

* Remove commented log calls

* Remove only filters in tests

Remove typo

* Refactor service to ease integration test

* Fix interaction with query controller

* Use middleware at api-router and test all controllers

* Rename user middleware function

* Use sinon latest version

* Fix tests

* Fix typos

* Checks if pubsub config exists to enable the service

* Fix typo

* Normalize headers values for pubsub

* Trim fields when normalizing

* Trim fields when normalizing
2020-02-26 17:19:06 +01:00
Daniel García Aubert
932fd8ef55 Do not yield to the next middleware before handleQuery is done 2020-02-20 12:16:20 +01:00
Esther Lozano
ac8086a8e3
Rename accepted headers for metrics events (#641)
* Rename accepted headers for metrics events
2020-02-18 11:14:06 +01:00
Esther Lozano
90ee8af129
Allow metrics custom headers in cors (#640)
* Allow metrics custom headers in cors

* Update NEWS.md
2020-02-13 11:30:14 +01:00
Daniel García Aubert
1e413a9332 Eslint errors 2019-12-26 18:28:01 +01:00
Daniel García Aubert
5a96dbb59c Run eslint --fix 2019-12-23 18:19:08 +01:00
Daniel García Aubert
26d01aeb45 Attach error middleware to api router instead of for each controller 2019-11-12 10:11:05 +01:00
Daniel García Aubert
ef43192538 Please JSHint 2019-10-15 13:30:40 +02:00
Daniel García Aubert
be4ecfdc6d Please JSHint 2019-10-15 13:30:13 +02:00
Daniel García Aubert
ee97a9f047 Use development branch of query-tables 2019-10-15 13:23:43 +02:00
Daniel García Aubert
2ec65375fc Be able to synchronize the TTL of cache-control header to expire in a coherent way 2019-10-15 13:11:49 +02:00
Daniel García Aubert
d00d30c3d4 Remove unused class member 2019-10-03 20:02:40 +02:00
Daniel García Aubert
62d98949ca Consistent middleware naming 2019-10-03 19:35:18 +02:00
Daniel García Aubert
06a47a8afc Changed folder structure to reflect application functionallity. Renamed files using hyphens instead of underscore to have a more consistent naming across the whole project 2019-10-03 18:24:39 +02:00