我正在尝试为Grafana编写一个自定义数据源插件,该插件将请求 Azure AD 身份验证令牌并将它们与查询一起发送到我的数据库,该数据库将接受令牌并返回对查询的响应。
我注意到 Grafana 的 Azure Monitor 插件通过要求用户输入其客户端 ID、客户端密码和租户 ID 并通过其plugin.json文件的 routes{} 部分使用它来执行相同的操作。
我已遵循此方法,但出现错误:
502 网关错误。
我的文件托管在这里
进行 HTTP 调用的 datasource.js 的基本部分是
query(options) {
const csl = document.getElementById("csl").value;
var queries = _.filter(options.targets, item => {
return item.hide !== true;
}).map(item => {
return {
refId: item.refId,
intervalMs: options.intervalMs,
maxDataPoints: options.maxDataPoints,
format: item.format,
};
});
if (queries.length <= 0) {
return this.$q.when({data: []});
}
return this.backendSrv.datasourceRequest({
url: `api/datasources/proxy/${this.id}/kusto/query`,
method: 'POST',
headers: this.headers,
data: {
db: this.database,
csl: csl,
from: options.range.from,
to: options.range.to,
queries: queries,
}
});
}
其中 kusto 是我的 plugin.json 中定义的路由路径。
是什么导致了这个错误?我的 datasource.js 或 plugin.json 有错误吗?错误发生在客户端还是服务器端?