Commit Graph

47 Commits

Author SHA1 Message Date
Daniel García Aubert
df604adc2a Add request duration in milliseconds 2020-07-23 11:37:00 +02:00
Daniel García Aubert
b7ecea3201 Rename 'message' key by 'event_message' 2020-07-23 10:32:58 +02:00
Daniel García Aubert
1ae9a66f85 Adapt logger output to the new standard for the entire platform 2020-07-22 18:29:05 +02:00
Daniel García Aubert
b611b85604 Missing header 2020-07-06 11:48:10 +02:00
Daniel García Aubert
84a6432e42 Handle error coming from database, such as query statement timeout 2020-07-01 20:59:21 +02:00
Daniel García Aubert
5e0cbcb879 For copyto endpoint, log on custom event to be able able to log all the gathered info even when error 2020-07-01 20:23:16 +02:00
Daniel García Aubert
65640a4c77 Do not use logger in stream-copy module 2020-07-01 17:38:35 +02:00
Daniel García Aubert
dc6e28097f Use named params for controllers 2020-07-01 12:32:51 +02:00
Daniel García Aubert
c4db741028 Move down init-logger and profiler middlewares to controllers 2020-07-01 12:29:51 +02:00
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
882ac9c2bc Remove mkdirp as dep 2020-06-01 10:55:18 +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
Daniel García Aubert
0c92fcaf96 Node.js 12 support:
- Update `gc-stats` to version 1.4.0
- Replace `zipfile` -> `adm-zip`
- Update `libxmljs` to version 0.19.7
- Update `sqlite` to version 4.2.0
- Adapted pool acquires to the new version of `cartodb-redis`
- Adapted test to use `adm-zip`
2020-05-18 11:32:41 +02:00
Raúl Marín
25f15dfc61 Fix an ogr2ogr export issue when the temporal name is too big
If the final name is going to be too big, use the hash over the proposed
path to create an unique name that fits the requirements of path length
under Linux
2020-05-11 18:35:35 +02:00
Raúl Marín
a8d10f25ee ogr2ogr csv: Keep output consistent between gdal releases 2020-04-16 18:35:57 +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
ac4d1c4e28 eslint errors 2019-12-26 18:12:47 +01:00
Daniel García Aubert
fddc76b542 Eslint errors 2019-12-26 18:01:38 +01:00
Daniel García Aubert
014158c968 Eslint errors 2019-12-26 17:46:27 +01:00
Daniel García Aubert
ac7d60d97d Fix lint errors 2019-12-26 14:51:09 +01:00
Daniel García Aubert
cc535b13d2 Use asert.strict mode 2019-12-26 14:23:21 +01:00
Daniel García Aubert
5a96dbb59c Run eslint --fix 2019-12-23 18:19:08 +01:00
Javier Goizueta
1767384746 Rename vars 2019-11-20 12:57:18 +01:00
Javier Goizueta
f026121ad5 Simplify throttling logic
This introduces a couple of changes in the parameter interpretation:
copy_from_minimum_input_speed is now the total number of bytes in the interval
(so we could multiply the currently configured values by the interval to preserve min. throughput.
the minimum speed is now inclusive (only smaller values will cause an exception).
2019-11-20 12:09:06 +01:00
Javier Goizueta
936b7804de Replace array by counter value in throttler 2019-11-19 16:53:49 +01:00
Javier Goizueta
1e0ed7ee17 Fix copy-throttling bug 2019-11-19 16:45:52 +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
Simon Tokumine
fefa051450 added true oauth to application. got rid of bogus 2011-08-17 17:27:45 +01:00
Simon Tokumine
bcd56de458 first draft, tidied, unit tests, modules, refactor, environments, see TODO for next steps" 2011-06-13 04:23:02 +01:00