Documentation
¶
Index ¶
- Constants
- Variables
- func AddAdminTools(mcp *server.MCPServer)
- func AddAlertingTools(mcp *server.MCPServer)
- func AddAssertsTools(mcp *server.MCPServer)
- func AddDashboardTools(mcp *server.MCPServer)
- func AddDatasourceTools(mcp *server.MCPServer)
- func AddIncidentTools(mcp *server.MCPServer)
- func AddLokiTools(mcp *server.MCPServer)
- func AddOnCallTools(mcp *server.MCPServer)
- func AddPrometheusTools(mcp *server.MCPServer)
- func AddPyroscopeTools(mcp *server.MCPServer)
- func AddSearchTools(mcp *server.MCPServer)
- func AddSiftTools(mcp *server.MCPServer)
- func GetDashboardPanelQueriesTool(ctx context.Context, args DashboardPanelQueriesParams) ([]panelQuery, error)
- type AddActivityToIncidentParams
- type Client
- type CreateIncidentParams
- type CurrentOnCallUsers
- type DashboardPanelQueriesParams
- type FetchPyroscopeProfileParams
- type FindErrorPatternLogsParams
- type FindSlowRequestsParams
- type GetAlertRuleByUIDParams
- type GetAssertionsParams
- type GetCurrentOnCallUsersParams
- type GetDashboardByUIDParams
- type GetDatasourceByNameParams
- type GetDatasourceByUIDParams
- type GetIncidentParams
- type GetOnCallShiftParams
- type GetSiftAnalysisParams
- type GetSiftInvestigationParams
- type Investigation
- type InvestigationDatasources
- type LabelMatcher
- type LabelResponse
- type ListAlertRulesParams
- type ListContactPointsParams
- type ListDatasourcesParams
- type ListIncidentsParams
- type ListLokiLabelNamesParams
- type ListLokiLabelValuesParams
- type ListOnCallSchedulesParams
- type ListOnCallTeamsParams
- type ListOnCallUsersParams
- type ListPrometheusLabelNamesParams
- type ListPrometheusLabelValuesParams
- type ListPrometheusMetricMetadataParams
- type ListPrometheusMetricNamesParams
- type ListPyroscopeLabelNamesParams
- type ListPyroscopeLabelValuesParams
- type ListPyroscopeProfileTypesParams
- type ListSiftInvestigationsParams
- type ListTeamsParams
- type LogEntry
- type LogStream
- type QueryLokiLogsParams
- type QueryLokiStatsParams
- type QueryPrometheusParams
- type QueryRangeResponse
- type ScheduleSummary
- type SearchDashboardsParams
- type Selector
- type Stats
- type UpdateDashboardParams
Constants ¶
const ( DefaultListAlertRulesLimit = 100 DefaultListContactPointsLimit = 100 )
const ( // DefaultLokiLogLimit is the default number of log lines to return if not specified DefaultLokiLogLimit = 10 // MaxLokiLogLimit is the maximum number of log lines that can be requested MaxLokiLogLimit = 100 )
Variables ¶
var AddActivityToIncident = mcpgrafana.MustTool( "add_activity_to_incident", "Add a note (userNote activity) to an existing incident's timeline using its ID. The note body can include URLs which will be attached as context. Use this to add context to an incident.", addActivityToIncident, mcp.WithTitleAnnotation("Add activity to incident"), )
var CreateIncident = mcpgrafana.MustTool( "create_incident", "Create a new Grafana incident. Requires title, severity, and room prefix. Allows setting status and labels. This tool should be used judiciously and sparingly, and only after confirmation from the user, as it may notify or alarm lots of people.", createIncident, mcp.WithTitleAnnotation("Create incident"), )
var FetchPyroscopeProfile = mcpgrafana.MustTool( "fetch_pyroscope_profile", fetchPyroscopeProfileToolPrompt, fetchPyroscopeProfile, mcp.WithTitleAnnotation("Fetch Pyroscope profile"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var FindErrorPatternLogs = mcpgrafana.MustTool( "find_error_pattern_logs", "Searches Loki logs for elevated error patterns compared to the last day's average, waits for the analysis to complete, and returns the results including any patterns found.", findErrorPatternLogs, mcp.WithTitleAnnotation("Find error patterns in logs"), mcp.WithReadOnlyHintAnnotation(true), )
FindErrorPatternLogs is a tool for running an ErrorPatternLogs check
var FindSlowRequests = mcpgrafana.MustTool( "find_slow_requests", "Searches relevant Tempo datasources for slow requests, waits for the analysis to complete, and returns the results.", findSlowRequests, mcp.WithTitleAnnotation("Find slow requests"), mcp.WithReadOnlyHintAnnotation(true), )
FindSlowRequests is a tool for running an SlowRequests check
var GetAlertRuleByUID = mcpgrafana.MustTool( "get_alert_rule_by_uid", "Retrieves the full configuration and detailed status of a specific Grafana alert rule identified by its unique ID (UID). The response includes fields like title, condition, query data, folder UID, rule group, state settings (no data, error), evaluation interval, annotations, and labels.", getAlertRuleByUID, mcp.WithTitleAnnotation("Get alert rule details"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var GetAssertions = mcpgrafana.MustTool( "get_assertions", "Get assertion summary for a given entity with its type, name, env, site, namespace, and a time range", getAssertions, mcp.WithTitleAnnotation("Get assertions summary"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var GetCurrentOnCallUsers = mcpgrafana.MustTool( "get_current_oncall_users", "Get the list of users currently on-call for a specific Grafana OnCall schedule ID. Returns the schedule ID, name, and a list of detailed user objects for those currently on call.", getCurrentOnCallUsers, mcp.WithTitleAnnotation("Get current on-call users"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var GetDashboardByUID = mcpgrafana.MustTool( "get_dashboard_by_uid", "Retrieves the complete dashboard, including panels, variables, and settings, for a specific dashboard identified by its UID.", getDashboardByUID, mcp.WithTitleAnnotation("Get dashboard details"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var GetDashboardPanelQueries = mcpgrafana.MustTool( "get_dashboard_panel_queries", "Get the title, query string, and datasource information for each panel in a dashboard. The datasource is an object with fields `uid` (which may be a concrete UID or a template variable like \"$datasource\") and `type`. If the datasource UID is a template variable, it won't be usable directly for queries. Returns an array of objects, each representing a panel, with fields: title, query, and datasource (an object with uid and type).", GetDashboardPanelQueriesTool, mcp.WithTitleAnnotation("Get dashboard panel queries"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var GetDatasourceByName = mcpgrafana.MustTool( "get_datasource_by_name", "Retrieves detailed information about a specific datasource using its name. Returns the full datasource model, including UID, type, URL, access settings, JSON data, and secure JSON field status.", getDatasourceByName, mcp.WithTitleAnnotation("Get datasource by name"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var GetDatasourceByUID = mcpgrafana.MustTool( "get_datasource_by_uid", "Retrieves detailed information about a specific datasource using its UID. Returns the full datasource model, including name, type, URL, access settings, JSON data, and secure JSON field status.", getDatasourceByUID, mcp.WithTitleAnnotation("Get datasource by UID"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var GetIncident = mcpgrafana.MustTool( "get_incident", "Get a single incident by ID. Returns the full incident details including title, status, severity, labels, timestamps, and other metadata.", getIncident, mcp.WithTitleAnnotation("Get incident details"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var GetOnCallShift = mcpgrafana.MustTool( "get_oncall_shift", "Get detailed information for a specific Grafana OnCall shift using its ID. A shift represents a designated time period within a schedule when users are actively on-call. Returns the full shift details.", getOnCallShift, mcp.WithTitleAnnotation("Get OnCall shift"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var GetSiftAnalysis = mcpgrafana.MustTool( "get_sift_analysis", "Retrieves a specific analysis from an investigation by its UUID. The investigation ID and analysis ID should be provided as strings in UUID format.", getSiftAnalysis, mcp.WithTitleAnnotation("Get Sift analysis"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
GetSiftAnalysis is a tool for retrieving a specific analysis from an investigation
var GetSiftInvestigation = mcpgrafana.MustTool( "get_sift_investigation", "Retrieves an existing Sift investigation by its UUID. The ID should be provided as a string in UUID format (e.g. '02adab7c-bf5b-45f2-9459-d71a2c29e11b').", getSiftInvestigation, mcp.WithTitleAnnotation("Get Sift investigation"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
GetSiftInvestigation is a tool for retrieving an existing investigation
var ListAlertRules = mcpgrafana.MustTool( "list_alert_rules", "Lists Grafana alert rules, returning a summary including UID, title, current state (e.g., 'pending', 'firing', 'inactive'), and labels. Supports filtering by labels using selectors and pagination. Example label selector: `[{'name': 'severity', 'type': '=', 'value': 'critical'}]`. Inactive state means the alert state is normal, not firing", listAlertRules, mcp.WithTitleAnnotation("List alert rules"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListContactPoints = mcpgrafana.MustTool( "list_contact_points", "Lists Grafana notification contact points, returning a summary including UID, name, and type for each. Supports filtering by name - exact match - and limiting the number of results.", listContactPoints, mcp.WithTitleAnnotation("List notification contact points"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListDatasources = mcpgrafana.MustTool( "list_datasources", "List available Grafana datasources. Optionally filter by datasource type (e.g., 'prometheus', 'loki'). Returns a summary list including ID, UID, name, type, and default status.", listDatasources, mcp.WithTitleAnnotation("List datasources"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListIncidents = mcpgrafana.MustTool( "list_incidents", "List Grafana incidents. Allows filtering by status ('active', 'resolved') and optionally including drill incidents. Returns a preview list with basic details.", listIncidents, mcp.WithTitleAnnotation("List incidents"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListLokiLabelNames = mcpgrafana.MustTool( "list_loki_label_names", "Lists all available label names (keys) found in logs within a specified Loki datasource and time range. Returns a list of unique label strings (e.g., `[\"app\", \"env\", \"pod\"]`). If the time range is not provided, it defaults to the last hour.", listLokiLabelNames, mcp.WithTitleAnnotation("List Loki label names"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
ListLokiLabelNames is a tool for listing Loki label names
var ListLokiLabelValues = mcpgrafana.MustTool( "list_loki_label_values", "Retrieves all unique values associated with a specific `labelName` within a Loki datasource and time range. Returns a list of string values (e.g., for `labelName=\"env\"`, might return `[\"prod\", \"staging\", \"dev\"]`). Useful for discovering filter options. Defaults to the last hour if the time range is omitted.", listLokiLabelValues, mcp.WithTitleAnnotation("List Loki label values"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
ListLokiLabelValues is a tool for listing Loki label values
var ListOnCallSchedules = mcpgrafana.MustTool( "list_oncall_schedules", "List Grafana OnCall schedules, optionally filtering by team ID. If a specific schedule ID is provided, retrieves details for only that schedule. Returns a list of schedule summaries including ID, name, team ID, timezone, and shift IDs. Supports pagination.", listOnCallSchedules, mcp.WithTitleAnnotation("List OnCall schedules"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListOnCallTeams = mcpgrafana.MustTool( "list_oncall_teams", "List teams configured in Grafana OnCall. Returns a list of team objects with their details. Supports pagination.", listOnCallTeams, mcp.WithTitleAnnotation("List OnCall teams"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListOnCallUsers = mcpgrafana.MustTool( "list_oncall_users", "List users from Grafana OnCall. Can retrieve all users, a specific user by ID, or filter by username. Returns a list of user objects with their details. Supports pagination.", listOnCallUsers, mcp.WithTitleAnnotation("List OnCall users"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListPrometheusLabelNames = mcpgrafana.MustTool( "list_prometheus_label_names", "List label names in a Prometheus datasource. Allows filtering by series selectors and time range.", listPrometheusLabelNames, mcp.WithTitleAnnotation("List Prometheus label names"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListPrometheusLabelValues = mcpgrafana.MustTool( "list_prometheus_label_values", "Get the values for a specific label name in Prometheus. Allows filtering by series selectors and time range.", listPrometheusLabelValues, mcp.WithTitleAnnotation("List Prometheus label values"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListPrometheusMetricMetadata = mcpgrafana.MustTool( "list_prometheus_metric_metadata", "List Prometheus metric metadata. Returns metadata about metrics currently scraped from targets. Note: This endpoint is experimental.", listPrometheusMetricMetadata, mcp.WithTitleAnnotation("List Prometheus metric metadata"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListPrometheusMetricNames = mcpgrafana.MustTool( "list_prometheus_metric_names", "List metric names in a Prometheus datasource. Retrieves all metric names and then filters them locally using the provided regex. Supports pagination.", listPrometheusMetricNames, mcp.WithTitleAnnotation("List Prometheus metric names"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListPyroscopeLabelNames = mcpgrafana.MustTool( "list_pyroscope_label_names", listPyroscopeLabelNamesToolPrompt, listPyroscopeLabelNames, mcp.WithTitleAnnotation("List Pyroscope label names"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListPyroscopeLabelValues = mcpgrafana.MustTool( "list_pyroscope_label_values", listPyroscopeLabelValuesToolPrompt, listPyroscopeLabelValues, mcp.WithTitleAnnotation("List Pyroscope label values"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListPyroscopeProfileTypes = mcpgrafana.MustTool( "list_pyroscope_profile_types", listPyroscopeProfileTypesToolPrompt, listPyroscopeProfileTypes, mcp.WithTitleAnnotation("List Pyroscope profile types"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var ListSiftInvestigations = mcpgrafana.MustTool( "list_sift_investigations", "Retrieves a list of Sift investigations with an optional limit. If no limit is specified, defaults to 10 investigations.", listSiftInvestigations, mcp.WithTitleAnnotation("List Sift investigations"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
ListSiftInvestigations is a tool for retrieving a list of investigations
var ListTeams = mcpgrafana.MustTool(
"list_teams",
"Search for Grafana teams by a query string. Returns a list of matching teams with details like name, ID, and URL.",
listTeams,
)
var QueryLokiLogs = mcpgrafana.MustTool( "query_loki_logs", "Executes a LogQL query against a Loki datasource to retrieve log entries or metric values. Returns a list of results, each containing a timestamp, labels, and either a log line (`line`) or a numeric metric value (`value`). Defaults to the last hour, a limit of 10 entries, and 'backward' direction (newest first). Supports full LogQL syntax for log and metric queries (e.g., `{app=\"foo\"} |= \"error\"`, `rate({app=\"bar\"}[1m])`). Prefer using `query_loki_stats` first to check stream size and `list_loki_label_names` and `list_loki_label_values` to verify labels exist.", queryLokiLogs, mcp.WithTitleAnnotation("Query Loki logs"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
QueryLokiLogs is a tool for querying logs from Loki
var QueryLokiStats = mcpgrafana.MustTool( "query_loki_stats", "Retrieves statistics about log streams matching a given LogQL *selector* within a Loki datasource and time range. Returns an object containing the count of streams, chunks, entries, and total bytes (e.g., `{\"streams\": 5, \"chunks\": 50, \"entries\": 10000, \"bytes\": 512000}`). The `logql` parameter **must** be a simple label selector (e.g., `{app=\"nginx\", env=\"prod\"}`) and does not support line filters, parsers, or aggregations. Defaults to the last hour if the time range is omitted.", queryLokiStats, mcp.WithTitleAnnotation("Get Loki log statistics"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
QueryLokiStats is a tool for querying stats from Loki
var QueryPrometheus = mcpgrafana.MustTool( "query_prometheus", "Query Prometheus using a PromQL expression. Supports both instant queries (at a single point in time) and range queries (over a time range). Time can be specified either in RFC3339 format or as relative time expressions like 'now', 'now-1h', 'now-30m', etc.", queryPrometheus, mcp.WithTitleAnnotation("Query Prometheus metrics"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var SearchDashboards = mcpgrafana.MustTool( "search_dashboards", "Search for Grafana dashboards by a query string. Returns a list of matching dashboards with details like title, UID, folder, tags, and URL.", searchDashboards, mcp.WithTitleAnnotation("Search dashboards"), mcp.WithIdempotentHintAnnotation(true), mcp.WithReadOnlyHintAnnotation(true), )
var UpdateDashboard = mcpgrafana.MustTool( "update_dashboard", "Create or update a dashboard", updateDashboard, mcp.WithTitleAnnotation("Create or update dashboard"), mcp.WithDestructiveHintAnnotation(true), )
Functions ¶
func AddAdminTools ¶ added in v0.4.0
func AddAlertingTools ¶ added in v0.2.4
func AddAssertsTools ¶ added in v0.3.0
func AddDashboardTools ¶ added in v0.2.4
func AddDatasourceTools ¶
func AddIncidentTools ¶
func AddLokiTools ¶ added in v0.2.2
AddLokiTools registers all Loki tools with the MCP server
func AddOnCallTools ¶ added in v0.2.4
func AddPrometheusTools ¶
func AddPyroscopeTools ¶ added in v0.5.0
func AddSearchTools ¶
func AddSiftTools ¶ added in v0.3.0
AddSiftTools registers all Sift tools with the MCP server
func GetDashboardPanelQueriesTool ¶ added in v0.4.0
func GetDashboardPanelQueriesTool(ctx context.Context, args DashboardPanelQueriesParams) ([]panelQuery, error)
Types ¶
type AddActivityToIncidentParams ¶
type AddActivityToIncidentParams struct { IncidentID string `json:"incidentId" jsonschema:"description=The ID of the incident to add the activity to"` Body string `json:"body" jsonschema:"description=The body of the activity. URLs will be parsed and attached as context"` EventTime string `` /* 127-byte string literal not displayed */ }
type CreateIncidentParams ¶
type CreateIncidentParams struct { Title string `json:"title" jsonschema:"description=The title of the incident"` Severity string `json:"severity" jsonschema:"description=The severity of the incident"` RoomPrefix string `json:"roomPrefix" jsonschema:"description=The prefix of the room to create the incident in"` IsDrill bool `json:"isDrill" jsonschema:"description=Whether the incident is a drill incident"` Status string `json:"status" jsonschema:"description=The status of the incident"` AttachCaption string `json:"attachCaption" jsonschema:"description=The caption of the attachment"` AttachURL string `json:"attachUrl" jsonschema:"description=The URL of the attachment"` Labels []incident.IncidentLabel `json:"labels" jsonschema:"description=The labels to add to the incident"` }
type CurrentOnCallUsers ¶ added in v0.2.4
type CurrentOnCallUsers struct { ScheduleID string `json:"scheduleId" jsonschema:"description=The ID of the schedule"` ScheduleName string `json:"scheduleName" jsonschema:"description=The name of the schedule"` Users []*aapi.User `json:"users" jsonschema:"description=List of users currently on call"` }
CurrentOnCallUsers represents the currently on-call users for a schedule
type DashboardPanelQueriesParams ¶ added in v0.4.0
type DashboardPanelQueriesParams struct {
UID string `json:"uid" jsonschema:"required,description=The UID of the dashboard"`
}
type FetchPyroscopeProfileParams ¶ added in v0.5.0
type FetchPyroscopeProfileParams struct { DataSourceUID string `json:"data_source_uid" jsonschema:"required,description=The UID of the datasource to query"` ProfileType string `` /* 149-byte string literal not displayed */ Matchers string `` /* 138-byte string literal not displayed */ MaxNodeDepth int `` /* 408-byte string literal not displayed */ StartRFC3339 string `` /* 141-byte string literal not displayed */ EndRFC3339 string `` /* 130-byte string literal not displayed */ }
type FindErrorPatternLogsParams ¶ added in v0.3.0
type FindErrorPatternLogsParams struct { Name string `json:"name" jsonschema:"required,description=The name of the investigation"` Labels map[string]string `json:"labels" jsonschema:"required,description=Labels to scope the analysis"` Start time.Time `` /* 126-byte string literal not displayed */ End time.Time `json:"end,omitempty" jsonschema:"description=End time for the investigation. Defaults to now if not specified."` }
FindErrorPatternLogsParams defines the parameters for running an ErrorPatternLogs check
type FindSlowRequestsParams ¶ added in v0.3.0
type FindSlowRequestsParams struct { Name string `json:"name" jsonschema:"required,description=The name of the investigation"` Labels map[string]string `json:"labels" jsonschema:"required,description=Labels to scope the analysis"` Start time.Time `` /* 126-byte string literal not displayed */ End time.Time `json:"end,omitempty" jsonschema:"description=End time for the investigation. Defaults to now if not specified."` }
FindSlowRequestsParams defines the parameters for running an SlowRequests check
type GetAlertRuleByUIDParams ¶ added in v0.2.4
type GetAlertRuleByUIDParams struct {
UID string `json:"uid" jsonschema:"required,description=The uid of the alert rule"`
}
type GetAssertionsParams ¶ added in v0.3.0
type GetAssertionsParams struct { StartTime time.Time `json:"startTime" jsonschema:"required,description=The start time in RFC3339 format"` EndTime time.Time `json:"endTime" jsonschema:"required,description=The end time in RFC3339 format"` EntityType string `json:"entityType" jsonschema:"description=The type of the entity to list (e.g. Service\\, Node\\, Pod\\, etc.)"` EntityName string `json:"entityName" jsonschema:"description=The name of the entity to list"` Env string `json:"env,omitempty" jsonschema:"description=The env of the entity to list"` Site string `json:"site,omitempty" jsonschema:"description=The site of the entity to list"` Namespace string `json:"namespace,omitempty" jsonschema:"description=The namespace of the entity to list"` }
type GetCurrentOnCallUsersParams ¶ added in v0.2.4
type GetCurrentOnCallUsersParams struct {
ScheduleID string `json:"scheduleId" jsonschema:"required,description=The ID of the schedule to get current on-call users for"`
}
type GetDashboardByUIDParams ¶ added in v0.2.4
type GetDashboardByUIDParams struct {
UID string `json:"uid" jsonschema:"required,description=The UID of the dashboard"`
}
type GetDatasourceByNameParams ¶
type GetDatasourceByNameParams struct {
Name string `json:"name" jsonschema:"required,description=The name of the datasource"`
}
type GetDatasourceByUIDParams ¶
type GetDatasourceByUIDParams struct {
UID string `json:"uid" jsonschema:"required,description=The uid of the datasource"`
}
type GetIncidentParams ¶ added in v0.2.5
type GetIncidentParams struct {
ID string `json:"id" jsonschema:"description=The ID of the incident to retrieve"`
}
type GetOnCallShiftParams ¶ added in v0.2.4
type GetOnCallShiftParams struct {
ShiftID string `json:"shiftId" jsonschema:"required,description=The ID of the shift to get details for"`
}
type GetSiftAnalysisParams ¶ added in v0.3.0
type GetSiftAnalysisParams struct { InvestigationID string `` /* 144-byte string literal not displayed */ AnalysisID string `json:"analysisId" jsonschema:"required,description=The UUID of the specific analysis to retrieve"` }
GetSiftAnalysisParams defines the parameters for retrieving a specific analysis
type GetSiftInvestigationParams ¶ added in v0.3.0
type GetSiftInvestigationParams struct {
ID string `` /* 131-byte string literal not displayed */
}
GetSiftInvestigationParams defines the parameters for retrieving an investigation
type Investigation ¶ added in v0.3.0
type Investigation struct { ID uuid.UUID `json:"id"` CreatedAt time.Time `json:"created"` UpdatedAt time.Time `json:"modified"` TenantID string `json:"tenantId"` Name string `json:"name"` // GrafanaURL is the Grafana URL to be used for datasource queries // for this investigation. GrafanaURL string `json:"grafanaUrl"` // Status describes the state of the investigation (pending, running, failed, or finished). Status investigationStatus `json:"status"` // FailureReason is a short human-friendly string that explains the reason that the // investigation failed. FailureReason string `json:"failureReason,omitempty"` Analyses analysisMeta `json:"analyses"` Datasources InvestigationDatasources `json:"datasources"` }
type InvestigationDatasources ¶ added in v0.3.0
type InvestigationDatasources struct { LokiDatasource struct { UID string `json:"uid"` } `json:"lokiDatasource"` }
type LabelMatcher ¶
type LabelMatcher struct { Name string `json:"name" jsonschema:"required,description=The name of the label to match against"` Value string `json:"value" jsonschema:"required,description=The value to match against"` Type string `json:"type" jsonschema:"required,description=One of the '=' or '!=' or '=~' or '!~'"` }
type LabelResponse ¶ added in v0.2.2
LabelResponse represents the http json response to a label query
type ListAlertRulesParams ¶ added in v0.2.4
type ListAlertRulesParams struct { Limit int `json:"limit,omitempty" jsonschema:"description=The maximum number of results to return. Default is 100."` Page int `json:"page,omitempty" jsonschema:"description=The page number to return."` LabelSelectors []Selector `json:"label_selectors,omitempty" jsonschema:"description=Optionally\\, a list of matchers to filter alert rules by labels"` }
type ListContactPointsParams ¶ added in v0.2.5
type ListDatasourcesParams ¶
type ListDatasourcesParams struct {
Type string `` /* 144-byte string literal not displayed */
}
type ListIncidentsParams ¶
type ListIncidentsParams struct { Limit int `json:"limit" jsonschema:"description=The maximum number of incidents to return"` Drill bool `json:"drill" jsonschema:"description=Whether to include drill incidents"` Status string `json:"status" jsonschema:"description=The status of the incidents to include. Valid values: 'active'\\, 'resolved'"` }
type ListLokiLabelNamesParams ¶ added in v0.2.2
type ListLokiLabelNamesParams struct { DatasourceUID string `json:"datasourceUid" jsonschema:"required,description=The UID of the datasource to query"` StartRFC3339 string `` /* 139-byte string literal not displayed */ EndRFC3339 string `` /* 128-byte string literal not displayed */ }
ListLokiLabelNamesParams defines the parameters for listing Loki label names
type ListLokiLabelValuesParams ¶ added in v0.2.2
type ListLokiLabelValuesParams struct { DatasourceUID string `json:"datasourceUid" jsonschema:"required,description=The UID of the datasource to query"` LabelName string `` /* 126-byte string literal not displayed */ StartRFC3339 string `` /* 139-byte string literal not displayed */ EndRFC3339 string `` /* 128-byte string literal not displayed */ }
ListLokiLabelValuesParams defines the parameters for listing Loki label values
type ListOnCallSchedulesParams ¶ added in v0.2.4
type ListOnCallSchedulesParams struct { TeamID string `json:"teamId,omitempty" jsonschema:"description=The ID of the team to list schedules for"` ScheduleID string `` /* 147-byte string literal not displayed */ Page int `json:"page,omitempty" jsonschema:"description=The page number to return (1-based)"` }
type ListOnCallTeamsParams ¶ added in v0.2.4
type ListOnCallTeamsParams struct {
Page int `json:"page,omitempty" jsonschema:"description=The page number to return"`
}
type ListOnCallUsersParams ¶ added in v0.2.4
type ListPrometheusLabelNamesParams ¶
type ListPrometheusLabelNamesParams struct { DatasourceUID string `json:"datasourceUid" jsonschema:"required,description=The UID of the datasource to query"` Matches []Selector `json:"matches,omitempty" jsonschema:"description=Optionally\\, a list of label matchers to filter the results by"` StartRFC3339 string `` /* 126-byte string literal not displayed */ EndRFC3339 string `json:"endRfc3339,omitempty" jsonschema:"description=Optionally\\, the end time of the time range to filter the results by"` Limit int `json:"limit,omitempty" jsonschema:"description=Optionally\\, the maximum number of results to return"` }
type ListPrometheusLabelValuesParams ¶
type ListPrometheusLabelValuesParams struct { DatasourceUID string `json:"datasourceUid" jsonschema:"required,description=The UID of the datasource to query"` LabelName string `json:"labelName" jsonschema:"required,description=The name of the label to query"` Matches []Selector `json:"matches,omitempty" jsonschema:"description=Optionally\\, a list of selectors to filter the results by"` StartRFC3339 string `json:"startRfc3339,omitempty" jsonschema:"description=Optionally\\, the start time of the query"` EndRFC3339 string `json:"endRfc3339,omitempty" jsonschema:"description=Optionally\\, the end time of the query"` Limit int `json:"limit,omitempty" jsonschema:"description=Optionally\\, the maximum number of results to return"` }
type ListPrometheusMetricMetadataParams ¶
type ListPrometheusMetricMetadataParams struct { DatasourceUID string `json:"datasourceUid" jsonschema:"required,description=The UID of the datasource to query"` Limit int `json:"limit" jsonschema:"description=The maximum number of metrics to return"` LimitPerMetric int `json:"limitPerMetric" jsonschema:"description=The maximum number of metrics to return per metric"` Metric string `json:"metric" jsonschema:"description=The metric to query"` }
type ListPrometheusMetricNamesParams ¶
type ListPrometheusMetricNamesParams struct { DatasourceUID string `json:"datasourceUid" jsonschema:"required,description=The UID of the datasource to query"` Regex string `json:"regex" jsonschema:"description=The regex to match against the metric names"` Limit int `json:"limit,omitempty" jsonschema:"description=The maximum number of results to return"` Page int `json:"page,omitempty" jsonschema:"description=The page number to return"` }
type ListPyroscopeLabelNamesParams ¶ added in v0.5.0
type ListPyroscopeLabelNamesParams struct { DataSourceUID string `json:"data_source_uid" jsonschema:"required,description=The UID of the datasource to query"` Matchers string `json:"matchers,omitempty" jsonschema:"Prometheus style matchers used t0 filter the result set (defaults to: {})"` StartRFC3339 string `` /* 141-byte string literal not displayed */ EndRFC3339 string `` /* 130-byte string literal not displayed */ }
type ListPyroscopeLabelValuesParams ¶ added in v0.5.0
type ListPyroscopeLabelValuesParams struct { DataSourceUID string `json:"data_source_uid" jsonschema:"required,description=The UID of the datasource to query"` Name string `json:"name" jsonschema:"required,description=A label name"` Matchers string `` /* 138-byte string literal not displayed */ StartRFC3339 string `` /* 141-byte string literal not displayed */ EndRFC3339 string `` /* 130-byte string literal not displayed */ }
type ListPyroscopeProfileTypesParams ¶ added in v0.5.0
type ListSiftInvestigationsParams ¶ added in v0.3.0
type ListSiftInvestigationsParams struct {
Limit int `json:"limit,omitempty" jsonschema:"description=Maximum number of investigations to return. Defaults to 10 if not specified."`
}
ListSiftInvestigationsParams defines the parameters for retrieving investigations
type ListTeamsParams ¶ added in v0.4.0
type ListTeamsParams struct {
Query string `json:"query" jsonschema:"description=The query to search for teams. Can be left empty to fetch all teams"`
}
type LogEntry ¶ added in v0.2.2
type LogEntry struct { Timestamp string `json:"timestamp"` Line string `json:"line,omitempty"` // For log queries Value *float64 `json:"value,omitempty"` // For metric queries Labels map[string]string `json:"labels"` }
LogEntry represents a single log entry or metric sample with metadata
type LogStream ¶ added in v0.2.2
type LogStream struct { Stream map[string]string `json:"stream"` Values [][]json.RawMessage `json:"values"` // [timestamp, value] where value can be string or number }
LogStream represents a stream of log entries from Loki
type QueryLokiLogsParams ¶ added in v0.2.2
type QueryLokiLogsParams struct { DatasourceUID string `json:"datasourceUid" jsonschema:"required,description=The UID of the datasource to query"` LogQL string `` /* 308-byte string literal not displayed */ StartRFC3339 string `json:"startRfc3339,omitempty" jsonschema:"description=Optionally\\, the start time of the query in RFC3339 format"` EndRFC3339 string `json:"endRfc3339,omitempty" jsonschema:"description=Optionally\\, the end time of the query in RFC3339 format"` Limit int `` /* 129-byte string literal not displayed */ Direction string `` /* 158-byte string literal not displayed */ }
QueryLokiLogsParams defines the parameters for querying Loki logs
type QueryLokiStatsParams ¶ added in v0.2.2
type QueryLokiStatsParams struct { DatasourceUID string `json:"datasourceUid" jsonschema:"required,description=The UID of the datasource to query"` LogQL string `` /* 335-byte string literal not displayed */ StartRFC3339 string `json:"startRfc3339,omitempty" jsonschema:"description=Optionally\\, the start time of the query in RFC3339 format"` EndRFC3339 string `json:"endRfc3339,omitempty" jsonschema:"description=Optionally\\, the end time of the query in RFC3339 format"` }
QueryLokiStatsParams defines the parameters for querying Loki stats
type QueryPrometheusParams ¶
type QueryPrometheusParams struct { DatasourceUID string `json:"datasourceUid" jsonschema:"required,description=The UID of the datasource to query"` Expr string `json:"expr" jsonschema:"required,description=The PromQL expression to query"` StartTime string `` /* 240-byte string literal not displayed */ EndTime string `` /* 307-byte string literal not displayed */ StepSeconds int `` /* 161-byte string literal not displayed */ QueryType string `json:"queryType,omitempty" jsonschema:"description=The type of query to use. Either 'range' or 'instant'"` }
type QueryRangeResponse ¶ added in v0.2.2
type QueryRangeResponse struct { Status string `json:"status"` Data struct { ResultType string `json:"resultType"` Result []LogStream `json:"result"` } `json:"data"` }
QueryRangeResponse represents the response from Loki's query_range API
type ScheduleSummary ¶ added in v0.2.4
type ScheduleSummary struct { ID string `json:"id" jsonschema:"description=The unique identifier of the schedule"` Name string `json:"name" jsonschema:"description=The name of the schedule"` TeamID string `json:"teamId" jsonschema:"description=The ID of the team this schedule belongs to"` Timezone string `json:"timezone" jsonschema:"description=The timezone for this schedule"` Shifts []string `json:"shifts" jsonschema:"description=List of shift IDs in this schedule"` }
ScheduleSummary represents a simplified view of an OnCall schedule
type SearchDashboardsParams ¶
type SearchDashboardsParams struct {
Query string `json:"query" jsonschema:"description=The query to search for"`
}
type Selector ¶
type Selector struct {
Filters []LabelMatcher `json:"filters"`
}
type Stats ¶ added in v0.2.2
type Stats struct { Streams int `json:"streams"` Chunks int `json:"chunks"` Entries int `json:"entries"` Bytes int `json:"bytes"` }
Stats represents the statistics returned by Loki's index/stats endpoint
type UpdateDashboardParams ¶ added in v0.3.0
type UpdateDashboardParams struct { Dashboard map[string]interface{} `json:"dashboard" jsonschema:"required,description=The full dashboard JSON"` FolderUID string `json:"folderUid" jsonschema:"optional,description=The UID of the dashboard's folder"` Message string `json:"message" jsonschema:"optional,description=Set a commit message for the version history"` Overwrite bool `json:"overwrite" jsonschema:"optional,description=Overwrite the dashboard if it exists. Otherwise create one"` UserID int64 `json:"userId" jsonschema:"optional,ID of the user making the change"` }