我正在尝试创建一个支持日志面板的 Grafana 插件。我正在按照他们网站上的指示进行操作。
不幸的是,它似乎不起作用。我已经添加"logs": true
并plugin.json
正在返回一个time
名为"time"
的字段、一个名为 的字段string
和"level"
一个string
名为的字段"content"
,并附上他们的示例。我返回的内容与示例显示的内容基本相同。
export class DataSource extends DataSourceApi<MyQuery, MyDataSourceOptions> {
constructor(instanceSettings: DataSourceInstanceSettings<MyDataSourceOptions>) {
super(instanceSettings);
}
async query(options: DataQueryRequest<MyQuery>): Promise<DataQueryResponse> {
// Return a constant for each query.
const data = options.targets.map(target => {
const query = defaults(target, defaultQuery);
const frame = new MutableDataFrame({
refId: query.refId,
fields: [
{ name: 'time', type: FieldType.time },
{ name: 'level', type: FieldType.string },
{ name: 'content', type: FieldType.string },
],
});
frame.add({ time: 1615422190000, level: 'warn', content: 'hi' });
frame.add({ time: 1615422191000, level: 'info', content: 'bye' });
return frame;
});
return { data };
}
async testDatasource() {
// Implement a health check for your data source.
return {
status: 'success',
message: 'Success',
};
}
}
然而,在 Grafana(运行最新的稳定版本,7.4.3)中,当我加载我的插件时,如果我选择日志面板,我无法在探索和仪表板查询界面中获取日志面板,它显示数据但不正确:
我还需要做些什么来使日志面板正常工作吗?说明声称我只需要返回一个类型time
的字段和一个string
带有"logs": true
set in的类型的字段plugin.json
,但这不起作用。
到目前为止,我能找到的唯一真正的提示是关于 MSSQL plugin 的另一个 SO question,这表明该插件中有关此函数的某些内容可能会显示数据需要如何格式化,但我不清楚阅读源代码是什么可能是这样,它与我现在正在做的事情有什么不同。
ETA:看起来这个问题提出了类似的问题,但答案并没有说明问题是什么,因为在他们的情况下,他们似乎完全返回了错误类型的结果。