Monitoring and alerts #
Monitoring and alerting are managed per environment through the org-environment controller.
Base HTTP route:
/_/organizations/:organizationId/projects/:projectId/environments/:environmentIdMonitoring #
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/_urlList 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/_membersSynchronize 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/_syncProvision monitoring #
Provisions the Grafana monitoring of an existing environment — its Grafana team, folder and default dashboards — then restricts the folder to the environment's team and synchronizes its members. Monitoring is provisioned automatically at environment creation; this action is for environments that do not have it. Idempotent: replaying it reuses the existing folder instead of creating a second one. Requires an owner or admin role.
const result = await kuzzle.query({
controller: 'org-environment',
action: 'provisionMonitoring',
organizationId: 'paas-org-my-company',
projectId: 'my-project',
environmentId: 'production'
});HTTP route:
POST /_/organizations/:organizationId/projects/:projectId/environments/:environmentId/monitoring/_provisionRegenerate the default dashboards #
Deletes the environment's default metrics and logs dashboards and recreates them from the platform templates — to restore them after they were edited or removed. The environment must already have its monitoring provisioned. Requires an owner or admin role.
await kuzzle.query({
controller: 'org-environment',
action: 'regenerateDashboards',
organizationId: 'paas-org-my-company',
projectId: 'my-project',
environmentId: 'production'
});
// { status: 'success' }HTTP route:
POST /_/organizations/:organizationId/projects/:projectId/environments/:environmentId/monitoring/_dashboards/_regenerateAlerts #
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/alertsAdd 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/alertsRemove 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/alertsSend 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