mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
@@ -89,6 +89,9 @@ func (proxy *DataSourceProxy) HandleRequest() {
|
|||||||
span.SetTag("user_id", proxy.ctx.SignedInUser.UserId)
|
span.SetTag("user_id", proxy.ctx.SignedInUser.UserId)
|
||||||
span.SetTag("org_id", proxy.ctx.SignedInUser.OrgId)
|
span.SetTag("org_id", proxy.ctx.SignedInUser.OrgId)
|
||||||
|
|
||||||
|
proxy.addTraceFromHeaderValue(span, "X-Panel-Id", "panel_id")
|
||||||
|
proxy.addTraceFromHeaderValue(span, "X-Dashboard-Id", "dashboard_id")
|
||||||
|
|
||||||
opentracing.GlobalTracer().Inject(
|
opentracing.GlobalTracer().Inject(
|
||||||
span.Context(),
|
span.Context(),
|
||||||
opentracing.HTTPHeaders,
|
opentracing.HTTPHeaders,
|
||||||
@@ -98,6 +101,14 @@ func (proxy *DataSourceProxy) HandleRequest() {
|
|||||||
proxy.ctx.Resp.Header().Del("Set-Cookie")
|
proxy.ctx.Resp.Header().Del("Set-Cookie")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (proxy *DataSourceProxy) addTraceFromHeaderValue(span opentracing.Span, headerName string, tagName string) {
|
||||||
|
panelId := proxy.ctx.Req.Header.Get(headerName)
|
||||||
|
dashId, err := strconv.Atoi(panelId)
|
||||||
|
if err == nil {
|
||||||
|
span.SetTag(tagName, dashId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (proxy *DataSourceProxy) getDirector() func(req *http.Request) {
|
func (proxy *DataSourceProxy) getDirector() func(req *http.Request) {
|
||||||
return func(req *http.Request) {
|
return func(req *http.Request) {
|
||||||
req.URL.Scheme = proxy.targetUrl.Scheme
|
req.URL.Scheme = proxy.targetUrl.Scheme
|
||||||
|
|||||||
@@ -222,6 +222,7 @@ class MetricsPanelCtrl extends PanelCtrl {
|
|||||||
var metricsQuery = {
|
var metricsQuery = {
|
||||||
timezone: this.dashboard.getTimezone(),
|
timezone: this.dashboard.getTimezone(),
|
||||||
panelId: this.panel.id,
|
panelId: this.panel.id,
|
||||||
|
dashboardId: this.dashboard.id,
|
||||||
range: this.range,
|
range: this.range,
|
||||||
rangeRaw: this.range.raw,
|
rangeRaw: this.range.raw,
|
||||||
interval: this.interval,
|
interval: this.interval,
|
||||||
|
|||||||
@@ -50,6 +50,8 @@ export function GraphiteDatasource(instanceSettings, $q, backendSrv, templateSrv
|
|||||||
data: params.join('&'),
|
data: params.join('&'),
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
'X-Dashboard-Id': options.dashboardId, // enables distributed tracing in ds_proxy
|
||||||
|
'X-Panel-Id': options.panelId, // enables distributed tracing in ds_proxy
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user