This is the metrics server for collecting performance data and trace events of Mattermost application, primarily setup for Android mobile app.
This is a serverless application built on top of AWS API Gateway and AWS Lambda with data storage in PostgreSQL.
Once deployed to AWS, the API can be accessed using the generated URL and its API key.
npm run serve
npm run deploy:production
GET /
curl --request GET \
--url <TELEMETRY_URL>/ \
--header 'x-api-key: <TELEMETRY_API_KEY>'
Output: Should returned message as "I'm alive"
POST /metric
curl --request POST \
--url <TELEMETRY_URL>/metric \
--header 'content-type: application/json' \
--header 'x-api-key: <TELEMETRY_API_KEY>' \
--data @fixtures/raw_metrics.json
Output: Should returned message as "Successfully saved"
GET /metrics?page=0&per_page=100
curl --request GET \
--url <TELEMETRY_URL>/metrics \
--header 'x-api-key: <TELEMETRY_API_KEY>'
Output: Should list of metrics, like
{metrics: [...]}
GET /metric/{id}
curl --request GET \
--url <TELEMETRY_URL>/metric/<METRIC_ID> \
--header 'x-api-key: <TELEMETRY_API_KEY>'
Output: Should returned one metric matching the ID
GET /traces/{device_unique_id}?chrome=true&page=0&per_page=100
curl --request GET \
--url <TELEMETRY_URL>/traces/<DEVICE_UNIQUE_ID> \
--header 'x-api-key: <TELEMETRY_API_KEY>'
Output: Should returned trace events compatible with chrome://tracing
Note: Each endpoint requires API key to access. It's forbidden if not provided or invalid.