【发布时间】:2021-06-09 00:06:18
【问题描述】:
我正在尝试创建一个支持日志面板的 Grafana 插件。我正在关注directions from their website。
不幸的是,它似乎不起作用。我已将"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 类型的字段,并在plugin.json 中设置"logs": true,但这不起作用。
到目前为止,我能找到的唯一真正的提示是this other SO question about the MSSQL plugin,这表明something about this function in that plugin 可能会显示数据需要如何格式化,但我不清楚阅读源代码可能是什么以及它是怎样的和我现在做的不一样。
ETA:看起来this question 提出了类似的问题,但答案并没有说明问题是什么,因为在他们的情况下,他们似乎完全返回了错误类型的结果。
【问题讨论】:
标签: logging grafana grafana-plugin