Skip to content

GreptimeDB Trace Query Go SDK#

Constructor#

import "github.com/perses/plugins/greptimedb/sdk/go/query/trace"

var options []trace.Option
trace.GreptimeDBTraceQuery("SELECT * FROM public.opentelemetry_traces LIMIT 100", options...)

Need to provide the SQL query expression and a list of options.

Default options#

  • Query(): with the expression provided in the constructor.

Available options#

Query#

import "github.com/perses/plugins/greptimedb/sdk/go/query/trace"

trace.Query("SELECT * FROM public.opentelemetry_traces WHERE trace_id = 'abc123' ORDER BY timestamp ASC")

Define the SQL query expression.

Datasource#

import "github.com/perses/plugins/greptimedb/sdk/go/query/trace"

trace.Datasource("MyGreptimeDBDatasource")

Define the datasource the query will use.

Example#

Trace Table#

Use a trace list SQL query with the Trace Table panel:

package main

import (
    "github.com/perses/perses/go-sdk/dashboard"
    "github.com/perses/perses/go-sdk/panel"
    panelgroup "github.com/perses/perses/go-sdk/panel-group"
    "github.com/perses/plugins/greptimedb/sdk/go/query/trace"
    tracetable "github.com/perses/plugins/tracetable/sdk/go"
)

func main() {
    dashboard.New("GreptimeDB Traces Dashboard",
        dashboard.AddPanelGroup("Trace search",
            panelgroup.AddPanel("Trace list",
                tracetable.Chart(),
                panel.AddQuery(
                    trace.GreptimeDBTraceQuery("SELECT * FROM public.opentelemetry_traces LIMIT 100"),
                ),
            ),
        ),
    )
}

Tracing Gantt Chart#

Use a trace detail SQL query (with a trace_id filter) with the Tracing Gantt Chart panel:

package main

import (
    "github.com/perses/perses/go-sdk/dashboard"
    "github.com/perses/perses/go-sdk/panel"
    panelgroup "github.com/perses/perses/go-sdk/panel-group"
    "github.com/perses/plugins/greptimedb/sdk/go/query/trace"
    tracinggantt "github.com/perses/plugins/tracingganttchart/sdk/go"
)

func main() {
    dashboard.New("GreptimeDB Trace Timeline Dashboard",
        dashboard.AddPanelGroup("Trace details",
            panelgroup.AddPanel("Trace timeline",
                tracinggantt.Chart(),
                panel.AddQuery(
                    trace.GreptimeDBTraceQuery(`
                        SELECT * FROM public.opentelemetry_traces
                        WHERE trace_id = 'abc123abc123abc123abc123abc123ab'
                        ORDER BY timestamp ASC
                    `),
                ),
            ),
        ),
    )
}