Я хочу создать плагин Grafana, который использует базы данных MS SQL. Я знаю, что есть встроенный плагин источника данных MS SQL, но он требует, чтобы пользователь вводил целые SQL запросы. Я хочу создать собственный источник данных, который позволяет пользователю выбирать имя из списка, и плагин создаст для этого соответствующий запрос. Поэтому я хочу создать полностью настраиваемый конструктор запросов (который является частью подключаемого модуля источника данных).
Я начал с простого подключаемого модуля источника данных https://github.com/grafana/simple-datasource/tree/master, и я могу скомпилировать это, и это видно в Grafana.
Я подумал, что будет легко, если мой источник данных расширяет существующий плагин MS SQL.
Мой testDatasource выглядит так:
async testDatasource() {
return getBackendSrv()
.datasourceRequest({
url: '/api/tsdb/query',
method: 'POST',
data: {
from: '5m',
to: 'now',
queries: [
{
refId: 'A',
intervalMs: 1,
maxDataPoints: 1,
datasourceId: this.id,
rawSql: 'SELECT 1',
format: 'table',
},
],
},
})
.then((res: any) => {
return { status: 'success', message: 'Database Connection OK' };
})
.catch((err: any) => {
if (err.data && err.data.message) {
return { status: 'error', message: err.data.message };
} else {
return { status: 'error', message: err.status };
}
});
и каждый раз, когда я тестирую его, я получаю сообщение об ошибке в журнале error="Could not find executor for data source type: my-mssql-datasource" remote_addr=[::1]
Я проверил источники на github на предмет этой ошибки и могу обнаружить, что код Grafana в grafana / pkg / tsdb / query_endpoint . go не может найти имя my-mssql-datasource
в зарегистрированных плагинах.
Есть ли способ использовать бэкэнд-обработку MS SQL, которая уже существует в Grafana? Если да, то какие руководства или подсказки показывают, как это сделать? Я пытался следовать документации Grafana, но это мне не помогло.
Например: Могу ли я добавить что-нибудь в свой datasourceRequest
, что заставит Grafana выполнять мои запросы к MS SQL? Или я могу зарегистрировать свой источник данных, чтобы он использовал MS SQL?