Core
PaaS v2.x
2

Monitoring and alerts #

Monitoring and alerting are managed per environment through the org-environment controller.

Base HTTP route:

/organizations/:organizationId/projects/:projectId/environments/:environmentId

Monitoring #

Environments are connected to Grafana. Access to an environment's Grafana team is derived from organization membership.

Get the monitoring URL #

Returns the platform Grafana URL.

const url = await kuzzle.query({
  controller: 'org-environment',
  action: 'getMonitoringUrl',
  organizationId: 'paas-org-my-company',
  projectId: 'my-project',
  environmentId: 'production'
});

HTTP route:

GET /organizations/:organizationId/projects/:projectId/environments/:environmentId/monitoring/_url

List monitoring members #

Lists the Grafana team members of an environment.

const members = await kuzzle.query({
  controller: 'org-environment',
  action: 'listMonitoringMembers',
  organizationId: 'paas-org-my-company',
  projectId: 'my-project',
  environmentId: 'production'
});

HTTP route:

GET /organizations/:organizationId/projects/:projectId/environments/:environmentId/monitoring/_members

Synchronize monitoring access #

Synchronizes the environment's Grafana team with the current organization membership.

await kuzzle.query({
  controller: 'org-environment',
  action: 'syncMonitoringAccess',
  organizationId: 'paas-org-my-company',
  projectId: 'my-project',
  environmentId: 'production'
});

HTTP route:

POST /organizations/:organizationId/projects/:projectId/environments/:environmentId/monitoring/_access/_sync

Alerts #

An environment can post alerts to one or more Slack incoming webhooks. Configuring alerts requires an owner or admin role.

Get the alert configuration #

Returns the Slack webhooks configured for the environment (empty when none is set).

const alerts = await kuzzle.query({
  controller: 'org-environment',
  action: 'getAlertConfig',
  organizationId: 'paas-org-my-company',
  projectId: 'my-project',
  environmentId: 'production'
});

HTTP route:

GET /organizations/:organizationId/projects/:projectId/environments/:environmentId/alerts

Add a Slack webhook #

Adds a Slack webhook, keeping any previously configured webhooks.

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

HTTP route:

POST /organizations/:organizationId/projects/:projectId/environments/:environmentId/alerts

Remove a Slack webhook #

Removes the single webhook given in the body, or every configured webhook when the body is omitted.

await kuzzle.query({
  controller: 'org-environment',
  action: 'deleteAlertConfig',
  organizationId: 'paas-org-my-company',
  projectId: 'my-project',
  environmentId: 'production',
  body: {
    slackWebhook: 'https://hooks.slack.com/services/...'
  }
});

HTTP route:

DELETE /organizations/:organizationId/projects/:projectId/environments/:environmentId/alerts

Send a test alert #

Posts a test message to the environment's configured channel(s).

await kuzzle.query({
  controller: 'org-environment',
  action: 'sendTestAlert',
  organizationId: 'paas-org-my-company',
  projectId: 'my-project',
  environmentId: 'production'
});

HTTP route:

POST /organizations/:organizationId/projects/:projectId/environments/:environmentId/alerts/_test