Signed-off-by: yacut <roman.rogozhnikov@gmail.com>
@backstage/plugin-ilert
Introduction
iLert is a platform for alerting, on-call management and uptime monitoring. It helps teams to reduce response times to critical incidents by extending monitoring tools with reliable alerting, automatic escalations, on-call schedules and other features to support the incident response process, such as informing stakeholders or creating tickets in external incident management tools.
Overview
This plugin displays iLert information about an entity such as if there are any active incidents, wo is on-call now and uptime monitor status.
There is also an easy way to trigger an incident directly to the person who is currently on-call.
This plugin provides:
- Information details about the persons on-call
- A way to override current person on-call
- A list of incidents
- A way to trigger a new incident
- A way to reassign/acknowledge/resolve an incident
- A way to trigger an incident action
- A way to trigger an immediate maintenance
- A way to disable/enable an alert source
- A list of uptime monitors
Setup instructions
Install the plugin:
yarn add @backstage/plugin-ilert
Then make sure to export the plugin in your app's plugins.ts
to enable the plugin:
export { plugin as ILert } from '@backstage/plugin-ilert';
Add it to the EntityPage.tsx:
import {
isPluginApplicableToEntity as isILertAvailable,
EntityILertCard,
} from '@backstage/plugin-ilert';
{
isILertAvailable(entity) && (
<Grid item md={6}>
<EntityILertCard />
</Grid>
);
}
To force iLert card for each entity just add the
<EntityILertCard />component, so an instruction card will appears if no integration key is set.
Add iLert explorer to the App sidebar
Modify your app routes in App.tsx to include the Router component exported from the plugin, for example:
import { ILertPage } from '@backstage/plugin-ilert';
<Routes>
// ...
<Route path="/ilert" element={<ILertPage />} />
// ...
</Routes>;
Modify your sidebar in Root.tsx to include the icon component exported from the plugin, for example:
import { ILertIcon } from '@backstage/plugin-ilert';
<Sidebar>
// ...
<SidebarItem icon={ILertIcon} to="ilert" text="iLert" />
// ...
</Sidebar>;
Client configuration
If you want to override the default URL for api calls and detail pages, you can add it to app-config.yaml.
In app-config.yaml:
ilert:
baseUrl: https://my-org.ilert.com/
Providing the Authorization Header
In order to make the API calls, you need to provide a new proxy config which will redirect to the iLert API endpoint it needs an Authorization Header.
Add the proxy configuration in app-config.yaml
proxy:
...
'/ilert':
target: https://api.ilert.com
allowedMethods: ['GET', 'POST', 'PUT']
allowedHeaders: ['Authorization']
headers:
Authorization:
$env: ILERT_AUTH_HEADER
Then start the backend passing the token as an environment variable:
$ ILERT_AUTH_HEADER='Basic <TOKEN>' yarn start
Integration Key
The information displayed for each entity is based on the alert source integration key.
Adding the integration key to the entity annotation
If you want to use this plugin for an entity, you need to label it with the below annotation:
annotations:
ilert.com/integration-key: [INTEGRATION_KEY]