123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import React from 'react';
- import { DataSourcePluginOptionsEditorProps, SelectableValue } from '@grafana/data';
- import { DataSourceHttpSettings, InlineFormLabel, Select } from '@grafana/ui';
- import { AlertManagerDataSourceJsonData, AlertManagerImplementation } from './types';
- export type Props = DataSourcePluginOptionsEditorProps<AlertManagerDataSourceJsonData>;
- const IMPL_OPTIONS: SelectableValue[] = [
- {
- value: AlertManagerImplementation.mimir,
- icon: 'public/img/alerting/mimir_logo.svg',
- label: 'Mimir',
- description: `https://grafana.com/oss/mimir/. An open source, horizontally scalable, highly available, multi-tenant, long-term storage for Prometheus.`,
- },
- {
- value: AlertManagerImplementation.cortex,
- label: 'Cortex',
- description: `https://cortexmetrics.io/`,
- },
- {
- value: AlertManagerImplementation.prometheus,
- label: 'Prometheus',
- description:
- 'https://prometheus.io/. Does not support editing configuration via API, so contact points and notification policies are read-only.',
- },
- ];
- export const ConfigEditor: React.FC<Props> = ({ options, onOptionsChange }) => {
- return (
- <>
- <h3 className="page-heading">Alertmanager</h3>
- <div className="gf-form-group">
- <div className="gf-form-inline">
- <div className="gf-form">
- <InlineFormLabel width={13}>Implementation</InlineFormLabel>
- <Select
- width={40}
- options={IMPL_OPTIONS}
- value={options.jsonData.implementation || AlertManagerImplementation.mimir}
- onChange={(value) =>
- onOptionsChange({
- ...options,
- jsonData: {
- ...options.jsonData,
- implementation: value.value as AlertManagerImplementation,
- },
- })
- }
- />
- </div>
- </div>
- </div>
- <DataSourceHttpSettings
- defaultUrl={''}
- dataSourceConfig={options}
- showAccessOptions={true}
- onChange={onOptionsChange}
- />
- </>
- );
- };
|