Skip to content

Latest commit

 

History

History
69 lines (54 loc) · 1.8 KB

README.md

File metadata and controls

69 lines (54 loc) · 1.8 KB

Mattermost Metrics Server CircleCI branch

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.

Offline/local development

npm run serve

Deploy

npm run deploy:production

API endpoints and expected output

  • 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.