Core
PaaS v2.x
2

Monitoring and alerts #

Kuzzle PaaS exposes API actions for project monitoring access, default dashboard generation and Slack alert configuration.

Monitoring #

Controller: monitoring

Base HTTP route:

/projects/:projectId/monitoring

List team members #

const members = await kuzzle.query({
  controller: 'monitoring',
  action: 'listTeamMembers',
  projectId: 'paas-project-my-project'
});

HTTP route:

GET /projects/:projectId/monitoring/_members

Create a monitoring user #

await kuzzle.query({
  controller: 'monitoring',
  action: 'createUser',
  projectId: 'paas-project-my-project',
  body: {
    email: 'ops@example.com',
    user: 'ops',
    password: '<temporary-password>'
  }
});

HTTP route:

POST /projects/:projectId/monitoring/_members

Response:

{ "status": "success" }

Generate the default dashboard #

await kuzzle.query({
  controller: 'monitoring',
  action: 'generateDefaultDashboard',
  projectId: 'paas-project-my-project'
});

HTTP route:

POST /projects/:projectId/monitoring/_dashboard/default

Response:

{ "status": "success" }

Get the monitoring URL #

const url = await kuzzle.query({
  controller: 'monitoring',
  action: 'getMonitoringUrl',
  projectId: 'paas-project-my-project'
});

HTTP route:

GET /projects/:projectId/monitoring/_url

Alerts #

Controller: alerts

Base HTTP route:

/projects/:projectId/alerts

Configure Slack alerts #

await kuzzle.query({
  controller: 'alerts',
  action: 'createAlertConfig',
  projectId: 'paas-project-my-project',
  body: {
    slackWebhook: 'https://hooks.slack.com/services/...'
  }
});

HTTP route:

POST /projects/:projectId/alerts/:projectId/alert-config

Get Slack alert configuration #

const config = await kuzzle.query({
  controller: 'alerts',
  action: 'getAlertConfig',
  projectId: 'paas-project-my-project'
});

HTTP route:

GET /projects/:projectId/alerts/:projectId/alert-config

Delete Slack alert configuration #

await kuzzle.query({
  controller: 'alerts',
  action: 'deleteAlertConfig',
  projectId: 'paas-project-my-project'
});

HTTP route:

DELETE /projects/:projectId/alerts/:projectId/alert-config

Send a test alert #

await kuzzle.query({
  controller: 'alerts',
  action: 'sendTestAlert',
  projectId: 'paas-project-my-project'
});

HTTP route:

POST /projects/:projectId/alerts/:projectId/send-test-alert

The duplicated :projectId segment in alert routes reflects the current backend route definition.