sdk: github.com/grafana-tools/sdk Index | Examples | Files

package sdk

import "github.com/grafana-tools/sdk"

Index

Examples

Package Files

alertnotification.go annotation.go board.go custom-types.go datasource.go folder.go org.go panel.go preferences.go rest-admin.go rest-alertnotification.go rest-annotation.go rest-dashboard.go rest-datasource.go rest-folder.go rest-get_health.go rest-org.go rest-request.go rest-user.go row.go user.go

Constants

const (
    TemplatingHideNone = iota
    TemplatingHideLabel
    TemplatingHideVariable
)

Constants for templating

const (
    CustomType panelType = iota
    DashlistType
    GraphType
    TableType
    TextType
    PluginlistType
    AlertlistType
    SinglestatType
    StatType
    RowType
    BarGaugeType
)

Each panel may be one of these types.

const DefaultFolderId = 0

DefaultFolderId is the id of the general folder that is pre-created and cannot be removed.

const MixedSource = "-- Mixed --"

Variables

var DefaultHTTPClient = http.DefaultClient

DefaultHTTPClient initialized Grafana with appropriate conditions. It allows you globally redefine HTTP client.

type Alert Uses

type Alert struct {
    AlertRuleTags       map[string]string   `json:"alertRuleTags,omitempty"`
    Conditions          []AlertCondition    `json:"conditions,omitempty"`
    ExecutionErrorState string              `json:"executionErrorState,omitempty"`
    Frequency           string              `json:"frequency,omitempty"`
    Handler             int                 `json:"handler,omitempty"`
    Name                string              `json:"name,omitempty"`
    NoDataState         string              `json:"noDataState,omitempty"`
    Notifications       []AlertNotification `json:"notifications,omitempty"`
    Message             string              `json:"message,omitempty"`
    For                 string              `json:"for,omitempty"`
}

type AlertCondition Uses

type AlertCondition struct {
    Evaluator AlertEvaluator `json:"evaluator,omitempty"`
    Operator  AlertOperator  `json:"operator,omitempty"`
    Query     AlertQuery     `json:"query,omitempty"`
    Reducer   AlertReducer   `json:"reducer,omitempty"`
    Type      string         `json:"type,omitempty"`
}

type AlertEvaluator Uses

type AlertEvaluator struct {
    Params []float64 `json:"params,omitempty"`
    Type   string    `json:"type,omitempty"`
}

type AlertNotification Uses

type AlertNotification struct {
    ID                    int64       `json:"id,omitempty"`
    Name                  string      `json:"name"`
    Type                  string      `json:"type"`
    IsDefault             bool        `json:"isDefault"`
    DisableResolveMessage bool        `json:"disableResolveMessage"`
    SendReminder          bool        `json:"sendReminder"`
    Frequency             string      `json:"frequency"`
    Settings              interface{} `json:"settings"`
    UID                   string      `json:"uid,omitempty"`
}

AlertNotification as described in the doc https://grafana.com/docs/grafana/latest/http_api/alerting_notification_channels/

type AlertOperator Uses

type AlertOperator struct {
    Type string `json:"type,omitempty"`
}

type AlertQuery Uses

type AlertQuery struct {
    Params []string `json:"params,omitempty"`
}

type AlertReducer Uses

type AlertReducer struct {
    Params []string `json:"params,omitempty"`
    Type   string   `json:"type,omitempty"`
}

type AlertlistPanel Uses

type AlertlistPanel struct {
    OnlyAlertsOnDashboard bool     `json:"onlyAlertsOnDashboard"`
    Show                  string   `json:"show"`
    SortOrder             int      `json:"sortOrder"`
    Limit                 int      `json:"limit"`
    StateFilter           []string `json:"stateFilter"`
    NameFilter            string   `json:"nameFilter,omitempty"`
    DashboardTags         []string `json:"dashboardTags,omitempty"`
}

type Annotation Uses

type Annotation struct {
    Name        string   `json:"name"`
    Datasource  *string  `json:"datasource"`
    ShowLine    bool     `json:"showLine"`
    IconColor   string   `json:"iconColor"`
    LineColor   string   `json:"lineColor"`
    IconSize    uint     `json:"iconSize"`
    Enable      bool     `json:"enable"`
    Query       string   `json:"query"`
    Expr        string   `json:"expr"`
    Step        string   `json:"step"`
    TextField   string   `json:"textField"`
    TextFormat  string   `json:"textFormat"`
    TitleFormat string   `json:"titleFormat"`
    TagsField   string   `json:"tagsField"`
    Tags        []string `json:"tags"`
    TagKeys     string   `json:"tagKeys"`
    Type        string   `json:"type"`
}

type AnnotationResponse Uses

type AnnotationResponse struct {
    ID          uint                   `json:"id"`
    AlertID     uint                   `json:"alertId"`
    DashboardID uint                   `json:"dashboardId,omitempty"`
    PanelID     uint                   `json:"panelId,omitempty"`
    UserID      uint                   `json:"userId,omitempty"`
    UserName    string                 `json:"userName,omitempty"`
    NewState    string                 `json:"newState,omitempty"`
    PrevState   string                 `json:"prevState,omitempty"`
    Time        int64                  `json:"time,omitempty"`
    TimeEnd     int64                  `json:"timeEnd,omitempty"`
    Tags        []string               `json:"tags,omitempty"`
    Text        string                 `json:"text,omitempty"`
    Type        string                 `json:"type"`
    Data        map[string]interface{} `json:"data"`
}

AnnotationResponse is representation of an existing annotation

type Axis Uses

type Axis struct {
    Format   string       `json:"format"`
    LogBase  int          `json:"logBase"`
    Decimals int          `json:"decimals,omitempty"`
    Max      *FloatString `json:"max,omitempty"`
    Min      *FloatString `json:"min,omitempty"`
    Show     bool         `json:"show"`
    Label    string       `json:"label,omitempty"`
}

for a graph panel

type BarGaugePanel Uses

type BarGaugePanel struct {
    Options     Options     `json:"options"`
    Targets     []Target    `json:"targets,omitempty"`
    FieldConfig FieldConfig `json:"fieldConfig"`
}

type Board Uses

type Board struct {
    ID              uint       `json:"id,omitempty"`
    UID             string     `json:"uid,omitempty"`
    Slug            string     `json:"slug"`
    Title           string     `json:"title"`
    OriginalTitle   string     `json:"originalTitle"`
    Tags            []string   `json:"tags"`
    Style           string     `json:"style"`
    Timezone        string     `json:"timezone"`
    Editable        bool       `json:"editable"`
    HideControls    bool       `json:"hideControls" graf:"hide-controls"`
    SharedCrosshair bool       `json:"sharedCrosshair" graf:"shared-crosshair"`
    Panels          []*Panel   `json:"panels"`
    Rows            []*Row     `json:"rows"`
    Templating      Templating `json:"templating"`
    Annotations     struct {
        List []Annotation `json:"list"`
    }   `json:"annotations"`
    Refresh       *BoolString `json:"refresh,omitempty"`
    SchemaVersion uint        `json:"schemaVersion"`
    Version       uint        `json:"version"`
    Links         []Link      `json:"links"`
    Time          Time        `json:"time"`
    Timepicker    Timepicker  `json:"timepicker"`
    GraphTooltip  int         `json:"graphTooltip,omitempty"`
}

Board represents Grafana dashboard.

func NewBoard Uses

func NewBoard(title string) *Board

Code:

board := sdk.NewBoard("Sample dashboard title")
board.ID = 1
row1 := board.AddRow("Sample row title")
row1.Add(sdk.NewGraph("Sample graph"))
graphWithDs := sdk.NewGraph("Sample graph 2")
target := sdk.Target{
    RefID:      "A",
    Datasource: "Sample Source 1",
    Expr:       "sample request 1"}
graphWithDs.AddTarget(&target)
row1.Add(graphWithDs)
data, _ := json.MarshalIndent(board, "", "    ")
fmt.Printf("%s", data)

Output:

{
    "id": 1,
    "slug": "",
    "title": "Sample dashboard title",
    "originalTitle": "",
    "tags": null,
    "style": "dark",
    "timezone": "browser",
    "editable": true,
    "hideControls": false,
    "sharedCrosshair": false,
    "panels": null,
    "rows": [
        {
            "title": "Sample row title",
            "showTitle": false,
            "collapse": false,
            "editable": true,
            "height": "250px",
            "panels": [
                {
                    "editable": false,
                    "error": false,
                    "gridPos": {},
                    "id": 1,
                    "isNew": true,
                    "renderer": "flot",
                    "span": 12,
                    "title": "Sample graph",
                    "transparent": false,
                    "type": "graph",
                    "aliasColors": null,
                    "bars": false,
                    "fill": 0,
                    "legend": {
                        "alignAsTable": false,
                        "avg": false,
                        "current": false,
                        "hideEmpty": false,
                        "hideZero": false,
                        "max": false,
                        "min": false,
                        "rightSide": false,
                        "show": false,
                        "total": false,
                        "values": false
                    },
                    "lines": false,
                    "linewidth": 0,
                    "nullPointMode": "connected",
                    "percentage": false,
                    "pointradius": 5,
                    "points": false,
                    "stack": false,
                    "steppedLine": false,
                    "tooltip": {
                        "shared": false,
                        "value_type": ""
                    },
                    "x-axis": true,
                    "y-axis": true,
                    "xaxis": {
                        "format": "",
                        "logBase": 0,
                        "show": false
                    },
                    "yaxes": null
                },
                {
                    "editable": false,
                    "error": false,
                    "gridPos": {},
                    "id": 2,
                    "isNew": true,
                    "renderer": "flot",
                    "span": 12,
                    "title": "Sample graph 2",
                    "transparent": false,
                    "type": "graph",
                    "aliasColors": null,
                    "bars": false,
                    "fill": 0,
                    "legend": {
                        "alignAsTable": false,
                        "avg": false,
                        "current": false,
                        "hideEmpty": false,
                        "hideZero": false,
                        "max": false,
                        "min": false,
                        "rightSide": false,
                        "show": false,
                        "total": false,
                        "values": false
                    },
                    "lines": false,
                    "linewidth": 0,
                    "nullPointMode": "connected",
                    "percentage": false,
                    "pointradius": 5,
                    "points": false,
                    "stack": false,
                    "steppedLine": false,
                    "targets": [
                        {
                            "refId": "A",
                            "datasource": "Sample Source 1",
                            "expr": "sample request 1"
                        }
                    ],
                    "tooltip": {
                        "shared": false,
                        "value_type": ""
                    },
                    "x-axis": true,
                    "y-axis": true,
                    "xaxis": {
                        "format": "",
                        "logBase": 0,
                        "show": false
                    },
                    "yaxes": null
                }
            ],
            "repeat": null
        }
    ],
    "templating": {
        "list": null
    },
    "annotations": {
        "list": null
    },
    "schemaVersion": 0,
    "version": 0,
    "links": null,
    "time": {
        "from": "",
        "to": ""
    },
    "timepicker": {
        "refresh_intervals": null,
        "time_options": null
    }
}
func (b *Board) AddLink(link Link)

func (*Board) AddRow Uses

func (b *Board) AddRow(title string) *Row

func (*Board) AddTags Uses

func (b *Board) AddTags(tags ...string)

func (*Board) HasTag Uses

func (b *Board) HasTag(tag string) bool

func (*Board) RemoveTags Uses

func (b *Board) RemoveTags(tags ...string)

func (*Board) UpdateSlug Uses

func (b *Board) UpdateSlug() string

type BoardProperties Uses

type BoardProperties struct {
    IsStarred   bool      `json:"isStarred,omitempty"`
    IsHome      bool      `json:"isHome,omitempty"`
    IsSnapshot  bool      `json:"isSnapshot,omitempty"`
    Type        string    `json:"type,omitempty"`
    CanSave     bool      `json:"canSave"`
    CanEdit     bool      `json:"canEdit"`
    CanStar     bool      `json:"canStar"`
    Slug        string    `json:"slug"`
    Expires     time.Time `json:"expires"`
    Created     time.Time `json:"created"`
    Updated     time.Time `json:"updated"`
    UpdatedBy   string    `json:"updatedBy"`
    CreatedBy   string    `json:"createdBy"`
    Version     int       `json:"version"`
    FolderID    int       `json:"folderId"`
    FolderTitle string    `json:"folderTitle"`
    FolderURL   string    `json:"folderUrl"`
}

BoardProperties keeps metadata of a dashboard.

type BoolInt Uses

type BoolInt struct {
    Flag  bool
    Value *int64
}

func (BoolInt) MarshalJSON Uses

func (s BoolInt) MarshalJSON() ([]byte, error)

func (*BoolInt) UnmarshalJSON Uses

func (s *BoolInt) UnmarshalJSON(raw []byte) error

type BoolString Uses

type BoolString struct {
    Flag  bool
    Value string
}

func (BoolString) MarshalJSON Uses

func (s BoolString) MarshalJSON() ([]byte, error)

func (*BoolString) UnmarshalJSON Uses

func (s *BoolString) UnmarshalJSON(raw []byte) error

type Client Uses

type Client struct {
    // contains filtered or unexported fields
}

Client uses Grafana REST API for interacting with Grafana server.

func NewClient Uses

func NewClient(apiURL, apiKeyOrBasicAuth string, client *http.Client) *Client

NewClient initializes client for interacting with an instance of Grafana server; apiKeyOrBasicAuth accepts either 'username:password' basic authentication credentials, or a Grafana API key

func (*Client) AddActualOrgUser Uses

func (r *Client) AddActualOrgUser(ctx context.Context, userRole UserRole) (StatusMessage, error)

AddActualOrgUser adds a global user to the current organization. Reflects POST /api/org/users API call.

func (*Client) AddOrgUser Uses

func (r *Client) AddOrgUser(ctx context.Context, user UserRole, oid uint) (StatusMessage, error)

AddOrgUser add user to organization with oid. Reflects POST /api/orgs/:orgId/users API call.

func (*Client) CreateAlertNotification Uses

func (c *Client) CreateAlertNotification(ctx context.Context, an AlertNotification) (int64, error)

CreateAlertNotification creates a new alert notification channel. Reflects POST /api/alert-notifications API call.

func (*Client) CreateAnnotation Uses

func (r *Client) CreateAnnotation(ctx context.Context, a CreateAnnotationRequest) (StatusMessage, error)

CreateAnnotation creates a new annotation from the annotation request

func (*Client) CreateDatasource Uses

func (r *Client) CreateDatasource(ctx context.Context, ds Datasource) (StatusMessage, error)

CreateDatasource creates a new datasource. Reflects POST /api/datasources API call.

func (*Client) CreateFolder Uses

func (r *Client) CreateFolder(ctx context.Context, f Folder) (Folder, error)

CreateFolder create folders. Reflects POST /api/folders API call.

func (*Client) CreateOrg Uses

func (r *Client) CreateOrg(ctx context.Context, org Org) (StatusMessage, error)

CreateOrg creates a new organization. It reflects POST /api/orgs API call.

func (*Client) CreateUser Uses

func (r *Client) CreateUser(ctx context.Context, user User) (StatusMessage, error)

CreateUser creates a new global user. Requires basic authentication and that the authenticated user is a Grafana Admin. Reflects POST /api/admin/users API call.

func (*Client) DeleteActualOrgUser Uses

func (r *Client) DeleteActualOrgUser(ctx context.Context, uid uint) (StatusMessage, error)

DeleteActualOrgUser delete user in actual organization. Reflects DELETE /api/org/users/:userId API call.

func (*Client) DeleteAlertNotificationID Uses

func (c *Client) DeleteAlertNotificationID(ctx context.Context, id uint) error

DeleteAlertNotificationID deletes the specified alert notification channel. Reflects DELETE /api/alert-notifications/:id API call.

func (*Client) DeleteAlertNotificationUID Uses

func (c *Client) DeleteAlertNotificationUID(ctx context.Context, uid string) error

DeleteAlertNotificationUID deletes the specified alert notification channel. Reflects DELETE /api/alert-notifications/uid/:uid API call.

func (*Client) DeleteAnnotation Uses

func (r *Client) DeleteAnnotation(ctx context.Context, id uint) (StatusMessage, error)

DeleteAnnotation deletes the annotation with id

func (*Client) DeleteDashboard Uses

func (r *Client) DeleteDashboard(ctx context.Context, slug string) (StatusMessage, error)

DeleteDashboard deletes dashboard that selected by slug string. Grafana only can delete a dashboard in a database. File dashboards may be only loaded with HTTP API but not deteled.

Reflects DELETE /api/dashboards/db/:slug API call.

func (*Client) DeleteDatasource Uses

func (r *Client) DeleteDatasource(ctx context.Context, id uint) (StatusMessage, error)

DeleteDatasource deletes an existing datasource by ID. Reflects DELETE /api/datasources/:datasourceId API call.

func (*Client) DeleteDatasourceByName Uses

func (r *Client) DeleteDatasourceByName(ctx context.Context, name string) (StatusMessage, error)

DeleteDatasourceByName deletes an existing datasource by Name. Reflects DELETE /api/datasources/name/:datasourceName API call.

func (*Client) DeleteFolderByUID Uses

func (r *Client) DeleteFolderByUID(ctx context.Context, UID string) (bool, error)

DeleteFolderByUID deletes an existing folder by uid. Reflects DELETE /api/folders/:uid API call.

func (*Client) DeleteOrg Uses

func (r *Client) DeleteOrg(ctx context.Context, oid uint) (StatusMessage, error)

DeleteOrg deletes the organization identified by the oid. Reflects DELETE /api/orgs/:orgId API call.

func (*Client) DeleteOrgUser Uses

func (r *Client) DeleteOrgUser(ctx context.Context, oid, uid uint) (StatusMessage, error)

DeleteOrgUser deletes the user specified by uid within the organization specified by oid. Reflects DELETE /api/orgs/:orgId/users/:userId API call.

func (*Client) GetActualOrg Uses

func (r *Client) GetActualOrg(ctx context.Context) (Org, error)

GetActualOrg gets current organization. It reflects GET /api/org API call.

func (*Client) GetActualOrgPreferences Uses

func (r *Client) GetActualOrgPreferences(ctx context.Context) (Preferences, error)

GetActualOrgPreferences gets preferences of the actual organization. It reflects GET /api/org/preferences API call.

func (*Client) GetActualOrgUsers Uses

func (r *Client) GetActualOrgUsers(ctx context.Context) ([]OrgUser, error)

GetActualOrgUsers get all users within the actual organisation. Reflects GET /api/org/users API call.

func (*Client) GetActualUser Uses

func (r *Client) GetActualUser(ctx context.Context) (User, error)

GetActualUser gets an actual user. Reflects GET /api/user API call.

func (*Client) GetAlertNotificationID Uses

func (c *Client) GetAlertNotificationID(ctx context.Context, id uint) (AlertNotification, error)

GetAlertNotificationID gets the alert notification channel which has the specified id. Reflects GET /api/alert-notifications/:id API call.

func (*Client) GetAlertNotificationUID Uses

func (c *Client) GetAlertNotificationUID(ctx context.Context, uid string) (AlertNotification, error)

GetAlertNotificationUID gets the alert notification channel which has the specified uid. Reflects GET /api/alert-notifications/uid/:uid API call.

func (*Client) GetAllAlertNotifications Uses

func (c *Client) GetAllAlertNotifications(ctx context.Context) ([]AlertNotification, error)

GetAllAlertNotifications gets all alert notification channels. Reflects GET /api/alert-notifications API call.

func (*Client) GetAllDatasources Uses

func (r *Client) GetAllDatasources(ctx context.Context) ([]Datasource, error)

GetAllDatasources gets all datasources. Reflects GET /api/datasources API call.

func (*Client) GetAllFolders Uses

func (r *Client) GetAllFolders(ctx context.Context, params ...GetFolderParams) ([]Folder, error)

GetAllFolders gets all folders. Reflects GET /api/folders API call.

func (*Client) GetAllOrgs Uses

func (r *Client) GetAllOrgs(ctx context.Context) ([]Org, error)

GetAllOrgs returns all organizations. It reflects GET /api/orgs API call.

func (*Client) GetAllUsers Uses

func (r *Client) GetAllUsers(ctx context.Context) ([]User, error)

GetAllUsers gets all users. Reflects GET /api/users API call.

func (*Client) GetAnnotations Uses

func (r *Client) GetAnnotations(ctx context.Context, params ...GetAnnotationsParams) ([]AnnotationResponse, error)

GetAnnotations gets annotations matching the annotation parameters

func (*Client) GetDashboardBySlug Uses

func (r *Client) GetDashboardBySlug(ctx context.Context, slug string) (Board, BoardProperties, error)

GetDashboardBySlug loads a dashboard and its metadata from Grafana by dashboard slug.

For dashboards from a filesystem set "file/" prefix for slug. By default dashboards from a database assumed. Database dashboards may have "db/" prefix or may have not, it will be appended automatically.

Reflects GET /api/dashboards/db/:slug API call. Deprecated: since Grafana v5 you should use uids. Use GetDashboardByUID() for that.

func (*Client) GetDashboardByUID Uses

func (r *Client) GetDashboardByUID(ctx context.Context, uid string) (Board, BoardProperties, error)

GetDashboardByUID loads a dashboard and its metadata from Grafana by dashboard uid.

Reflects GET /api/dashboards/uid/:uid API call.

func (*Client) GetDatasource Uses

func (r *Client) GetDatasource(ctx context.Context, id uint) (Datasource, error)

GetDatasource gets an datasource by ID. Reflects GET /api/datasources/:datasourceId API call.

func (*Client) GetDatasourceByName Uses

func (r *Client) GetDatasourceByName(ctx context.Context, name string) (Datasource, error)

GetDatasourceByName gets an datasource by Name. Reflects GET /api/datasources/name/:datasourceName API call.

func (*Client) GetDatasourceTypes Uses

func (r *Client) GetDatasourceTypes(ctx context.Context) (map[string]DatasourceType, error)

GetDatasourceTypes gets all available plugins for the datasources. Reflects GET /api/datasources/plugins API call.

func (*Client) GetFolderByID Uses

func (r *Client) GetFolderByID(ctx context.Context, ID int) (Folder, error)

GetFolderByID gets folder by id. Reflects GET /api/folders/id/:id API call.

func (*Client) GetFolderByUID Uses

func (r *Client) GetFolderByUID(ctx context.Context, UID string) (Folder, error)

GetFolderByUID gets folder by uid. Reflects GET /api/folders/:uid API call.

func (*Client) GetHealth Uses

func (r *Client) GetHealth(ctx context.Context) (HealthResponse, error)

GetHealth retrieves the health of the grafana server Reflects GET BaseURL API call.

func (*Client) GetOrgById Uses

func (r *Client) GetOrgById(ctx context.Context, oid uint) (Org, error)

GetOrgById gets organization by organization Id. It reflects GET /api/orgs/:orgId API call.

func (*Client) GetOrgByOrgName Uses

func (r *Client) GetOrgByOrgName(ctx context.Context, name string) (Org, error)

GetOrgByOrgName gets organization by organization name. It reflects GET /api/orgs/name/:orgName API call.

func (*Client) GetOrgUsers Uses

func (r *Client) GetOrgUsers(ctx context.Context, oid uint) ([]OrgUser, error)

GetOrgUsers gets the users for the organization specified by oid. Reflects GET /api/orgs/:orgId/users API call.

func (*Client) GetRawDashboardBySlug Uses

func (r *Client) GetRawDashboardBySlug(ctx context.Context, slug string) ([]byte, BoardProperties, error)

GetRawDashboardBySlug loads a dashboard and its metadata from Grafana by dashboard slug.

For dashboards from a filesystem set "file/" prefix for slug. By default dashboards from a database assumed. Database dashboards may have "db/" prefix or may have not, it will be appended automatically.

Reflects GET /api/dashboards/db/:slug API call. Deprecated: since Grafana v5 you should use uids. Use GetRawDashboardByUID() for that.

func (*Client) GetRawDashboardByUID Uses

func (r *Client) GetRawDashboardByUID(ctx context.Context, uid string) ([]byte, BoardProperties, error)

GetRawDashboardByUID loads a dashboard and its metadata from Grafana by dashboard uid.

Reflects GET /api/dashboards/uid/:uid API call.

func (*Client) GetUser Uses

func (r *Client) GetUser(ctx context.Context, id uint) (User, error)

GetUser gets an user by ID. Reflects GET /api/users/:id API call.

func (*Client) PatchAnnotation Uses

func (r *Client) PatchAnnotation(ctx context.Context, id uint, a PatchAnnotationRequest) (StatusMessage, error)

PatchAnnotation patches the annotation with id with the request

func (*Client) Search Uses

func (r *Client) Search(ctx context.Context, params ...SearchParam) ([]FoundBoard, error)

Search searches folders and dashboards with query params specified.

Reflects GET /api/search API call.

func (*Client) SearchDashboards Uses

func (r *Client) SearchDashboards(ctx context.Context, query string, starred bool, tags ...string) ([]FoundBoard, error)

SearchDashboards search dashboards by substring of their title. It allows restrict the result set with only starred dashboards and only for tags (logical OR applied to multiple tags).

Reflects GET /api/search API call. Deprecated: This interface does not allow for API extension and is out of date. Please use Search(SearchType(SearchTypeDashboard))

func (*Client) SearchUsersWithPaging Uses

func (r *Client) SearchUsersWithPaging(ctx context.Context, query *string, perpage, page *int) (PageUsers, error)

SearchUsersWithPaging search users with paging. query optional. query value is contained in one of the name, login or email fields. Query values with spaces need to be url encoded e.g. query=Jane%20Doe perpage optional. default 1000 page optional. default 1 http://docs.grafana.org/http_api/user/#search-users http://docs.grafana.org/http_api/user/#search-users-with-paging

Reflects GET /api/users/search API call.

func (*Client) SetDashboard Uses

func (r *Client) SetDashboard(ctx context.Context, board Board, params SetDashboardParams) (StatusMessage, error)

SetDashboard updates existing dashboard or creates a new one. Set dasboard ID to nil to create a new dashboard. Set overwrite to true if you want to overwrite existing dashboard with newer version or with same dashboard title. Grafana only can create or update a dashboard in a database. File dashboards may be only loaded with HTTP API but not created or updated.

Reflects POST /api/dashboards/db API call.

func (*Client) SetRawDashboard Uses

func (r *Client) SetRawDashboard(ctx context.Context, raw []byte) (StatusMessage, error)

SetRawDashboard updates existing dashboard or creates a new one. Contrary to SetDashboard() it accepts raw JSON instead of Board structure. Grafana only can create or update a dashboard in a database. File dashboards may be only loaded with HTTP API but not created or updated.

Reflects POST /api/dashboards/db API call.

func (*Client) SwitchActualUserContext Uses

func (r *Client) SwitchActualUserContext(ctx context.Context, oid uint) (StatusMessage, error)

SwitchActualUserContext switches current user context to the given organization. Reflects POST /api/user/using/:organizationId API call.

func (*Client) SwitchUserContext Uses

func (r *Client) SwitchUserContext(ctx context.Context, uid uint, oid uint) (StatusMessage, error)

SwitchUserContext switches user context to the given organization. Requires basic authentication and that the authenticated user is a Grafana Admin. Reflects POST /api/users/:userId/using/:organizationId API call.

func (*Client) UpdateActualOrg Uses

func (r *Client) UpdateActualOrg(ctx context.Context, org Org) (StatusMessage, error)

UpdateActualOrg updates current organization. It reflects PUT /api/org API call.

func (*Client) UpdateActualOrgPreferences Uses

func (r *Client) UpdateActualOrgPreferences(ctx context.Context, prefs Preferences) (StatusMessage, error)

UpdateActualOrgPreferences updates preferences of the actual organization. Reflects PUT /api/org/preferences API call.

func (*Client) UpdateActualOrgUser Uses

func (r *Client) UpdateActualOrgUser(ctx context.Context, user UserRole, uid uint) (StatusMessage, error)

UpdateActualOrgUser updates the existing user. Reflects POST /api/org/users/:userId API call.

func (*Client) UpdateAlertNotificationID Uses

func (c *Client) UpdateAlertNotificationID(ctx context.Context, an AlertNotification, id uint) error

UpdateAlertNotificationID updates the specified alert notification channel. Reflects PUT /api/alert-notifications/:id API call.

func (*Client) UpdateAlertNotificationUID Uses

func (c *Client) UpdateAlertNotificationUID(ctx context.Context, an AlertNotification, uid string) error

UpdateAlertNotificationUID updates the specified alert notification channel. Reflects PUT /api/alert-notifications/uid/:uid API call.

func (*Client) UpdateDatasource Uses

func (r *Client) UpdateDatasource(ctx context.Context, ds Datasource) (StatusMessage, error)

UpdateDatasource updates a datasource from data passed in argument. Reflects PUT /api/datasources/:datasourceId API call.

func (*Client) UpdateFolderByUID Uses

func (r *Client) UpdateFolderByUID(ctx context.Context, f Folder) (Folder, error)

UpdateFolderByUID update folder by uid Reflects PUT /api/folders/:uid API call.

func (*Client) UpdateOrg Uses

func (r *Client) UpdateOrg(ctx context.Context, org Org, oid uint) (StatusMessage, error)

UpdateOrg updates the organization identified by oid. It reflects PUT /api/orgs/:orgId API call.

func (*Client) UpdateOrgUser Uses

func (r *Client) UpdateOrgUser(ctx context.Context, user UserRole, oid, uid uint) (StatusMessage, error)

UpdateOrgUser updates the user specified by uid within the organization specified by oid. Reflects PATCH /api/orgs/:orgId/users/:userId API call.

func (*Client) UpdateUserPermissions Uses

func (r *Client) UpdateUserPermissions(ctx context.Context, permissions UserPermissions, uid uint) (StatusMessage, error)

UpdateUserPermissions updates the permissions of a global user. Requires basic authentication and that the authenticated user is a Grafana Admin. Reflects PUT /api/admin/users/:userId/password API call.

type Column Uses

type Column struct {
    TextType string `json:"text"`
    Value    string `json:"value"`
}

for a table

type ColumnStyle Uses

type ColumnStyle struct {
    Alias       *string    `json:"alias"`
    DateFormat  *string    `json:"dateFormat,omitempty"`
    Pattern     string     `json:"pattern"`
    Type        string     `json:"type"`
    ColorMode   *string    `json:"colorMode,omitempty"`
    Colors      *[]string  `json:"colors,omitempty"`
    Decimals    *uint      `json:"decimals,omitempty"`
    Thresholds  *[]string  `json:"thresholds,omitempty"`
    Unit        *string    `json:"unit,omitempty"`
    MappingType int        `json:"mappingType,omitempty"`
    ValueMaps   []ValueMap `json:"valueMaps,omitempty"`
}

for a table

type CommonPanel Uses

type CommonPanel struct {
    Datasource *string `json:"datasource,omitempty"` // metrics
    Editable   bool    `json:"editable"`
    Error      bool    `json:"error"`
    GridPos    struct {
        H   *int `json:"h,omitempty"`
        W   *int `json:"w,omitempty"`
        X   *int `json:"x,omitempty"`
        Y   *int `json:"y,omitempty"`
    }   `json:"gridPos,omitempty"`
    Height           *string   `json:"height,omitempty"` // general
    HideTimeOverride *bool     `json:"hideTimeOverride,omitempty"`
    ID               uint      `json:"id"`
    IsNew            bool      `json:"isNew"`
    Links            []Link    `json:"links,omitempty"`    // general
    MinSpan          *float32  `json:"minSpan,omitempty"`  // templating options
    OfType           panelType `json:"-"`                  // it required for defining type of the panel
    Renderer         *string   `json:"renderer,omitempty"` // display styles
    Repeat           *string   `json:"repeat,omitempty"`   // templating options
    // RepeatIteration *int64   `json:"repeatIteration,omitempty"`
    RepeatPanelID *uint `json:"repeatPanelId,omitempty"`
    ScopedVars    map[string]struct {
        Selected bool   `json:"selected"`
        Text     string `json:"text"`
        Value    string `json:"value"`
    }   `json:"scopedVars,omitempty"`
    Span        float32 `json:"span"`                  // general
    Title       string  `json:"title"`                 // general
    Description *string `json:"description,omitempty"` // general
    Transparent bool    `json:"transparent"`
    Type        string  `json:"type"`
    Alert       *Alert  `json:"alert,omitempty"`
}

type CreateAnnotationRequest Uses

type CreateAnnotationRequest struct {
    DashboardID uint     `json:"dashboardId,omitempty"`
    PanelID     uint     `json:"panelId,omitempty"`
    Time        int64    `json:"time,omitempty"`
    TimeEnd     int64    `json:"timeEnd,omitempty"`
    Tags        []string `json:"tags,omitempty"`
    Text        string   `json:"text,omitempty"`
}

CreateAnnotationRequest is a request to create a new annotation

type Current Uses

type Current struct {
    Tags  []*string   `json:"tags,omitempty"`
    Text  interface{} `json:"text"`
    Value interface{} `json:"value"` // TODO select more precise type
}

for templateVar

type CustomPanel Uses

type CustomPanel map[string]interface{}

type DashlistPanel Uses

type DashlistPanel struct {
    Mode     string   `json:"mode"`
    Query    string   `json:"query"`
    Tags     []string `json:"tags"`
    FolderID int      `json:"folderId"`
    Limit    int      `json:"limit"`
    Headings bool     `json:"headings"`
    Recent   bool     `json:"recent"`
    Search   bool     `json:"search"`
    Starred  bool     `json:"starred"`
}

type Datasource Uses

type Datasource struct {
    ID                uint        `json:"id"`
    OrgID             uint        `json:"orgId"`
    Name              string      `json:"name"`
    Type              string      `json:"type"`
    Access            string      `json:"access"` // direct or proxy
    URL               string      `json:"url"`
    Password          *string     `json:"password,omitempty"`
    User              *string     `json:"user,omitempty"`
    Database          *string     `json:"database,omitempty"`
    BasicAuth         *bool       `json:"basicAuth,omitempty"`
    BasicAuthUser     *string     `json:"basicAuthUser,omitempty"`
    BasicAuthPassword *string     `json:"basicAuthPassword,omitempty"`
    IsDefault         bool        `json:"isDefault"`
    JSONData          interface{} `json:"jsonData"`
    SecureJSONData    interface{} `json:"secureJsonData"`
}

Datasource as described in the doc http://docs.grafana.org/reference/http_api/#get-all-datasources

type DatasourceType Uses

type DatasourceType struct {
    Metrics  bool   `json:"metrics"`
    Module   string `json:"module"`
    Name     string `json:"name"`
    Partials struct {
        Query string `json:"query"`
    }   `json:"datasource"`
    PluginType  string `json:"pluginType"`
    ServiceName string `json:"serviceName"`
    Type        string `json:"type"`
}

Datasource type as described in http://docs.grafana.org/reference/http_api/#available-data-source-types

type FieldConfig Uses

type FieldConfig struct {
    Defaults struct {
        Unit      string `json:"unit"`
        Threshold struct {
            Mode  string `json:"mode"`
            Steps []struct {
                Color string `json:"color"`
                Value string `json:"value"`
            }   `json:"steps"`
        }   `json:"threshold"`
    } `json:"defaults"`
}

type FloatString Uses

type FloatString struct {
    Value float64
    Valid bool
}

FloatString represents special type for json values that could be strings or ints: 100 or "100"

func NewFloatString Uses

func NewFloatString(i float64) *FloatString

func (*FloatString) MarshalJSON Uses

func (v *FloatString) MarshalJSON() ([]byte, error)

MarshalJSON implements custom marshalling for FloatString type

func (*FloatString) UnmarshalJSON Uses

func (v *FloatString) UnmarshalJSON(raw []byte) error

UnmarshalJSON implements custom unmarshalling for FloatString type

type Folder Uses

type Folder struct {
    ID        int    `json:"id"`
    UID       string `json:"uid"`
    Title     string `json:"title"`
    URL       string `json:"url"`
    HasAcl    bool   `json:"hasAcl"`
    CanSave   bool   `json:"canSave"`
    CanEdit   bool   `json:"canEdit"`
    CanAdmin  bool   `json:"canAdmin"`
    CreatedBy string `json:"createdBy"`
    Created   string `json:"created"`
    UpdatedBy string `json:"updatedBy"`
    Updated   string `json:"updated"`
    Version   int    `json:"version"`
    Overwrite bool   `json:"overwrite"`
}

Folder as described in the doc https://grafana.com/docs/grafana/latest/http_api/folder/#get-all-folders

type FoundBoard Uses

type FoundBoard struct {
    ID          uint     `json:"id"`
    UID         string   `json:"uid"`
    Title       string   `json:"title"`
    URI         string   `json:"uri"`
    URL         string   `json:"url"`
    Slug        string   `json:"slug"`
    Type        string   `json:"type"`
    Tags        []string `json:"tags"`
    IsStarred   bool     `json:"isStarred"`
    FolderID    int      `json:"folderId"`
    FolderUID   string   `json:"folderUid"`
    FolderTitle string   `json:"folderTitle"`
    FolderURL   string   `json:"folderUrl"`
}

FoundBoard keeps result of search with metadata of a dashboard.

type Gauge Uses

type Gauge struct {
    MaxValue         float32 `json:"maxValue"`
    MinValue         float32 `json:"minValue"`
    Show             bool    `json:"show"`
    ThresholdLabels  bool    `json:"thresholdLabels"`
    ThresholdMarkers bool    `json:"thresholdMarkers"`
}

for a stat

type GetAnnotationsParams Uses

type GetAnnotationsParams func(values url.Values)

GetAnnotationsParams is the type for all options implementing query parameters https://grafana.com/docs/grafana/latest/http_api/annotations/#find-annotations

func WithAlertType Uses

func WithAlertType() GetAnnotationsParams

WithAlertType filters the type to alerts

func WithAnnotationType Uses

func WithAnnotationType() GetAnnotationsParams

WithAnnotationType filters the type to annotations

func WithDashboard Uses

func WithDashboard(id uint) GetAnnotationsParams

WithDashboard filters the response to the specified dashboard ID

func WithEndTime Uses

func WithEndTime(t time.Time) GetAnnotationsParams

WithEndTime filters the annotations to before the specified time

func WithLimit Uses

func WithLimit(limit uint) GetAnnotationsParams

WithLimit sets the max number of alerts to return

func WithPanel Uses

func WithPanel(id uint) GetAnnotationsParams

WithPanel filters the response to the specified panel ID

func WithStartTime Uses

func WithStartTime(t time.Time) GetAnnotationsParams

WithStartTime filters the annotations to after the specified time

func WithTag Uses

func WithTag(tag string) GetAnnotationsParams

WithTag adds the tag to the

func WithUser Uses

func WithUser(id uint) GetAnnotationsParams

WithUser filters the annotations to only be made by the specified user ID

type GetFolderParams Uses

type GetFolderParams func(values url.Values)

GetFolderParams is the type for all options implementing query parameters

func Limit Uses

func Limit(limit uint) GetFolderParams

Limit sets the max number of folders to return

type GraphPanel Uses

type GraphPanel struct {
    AliasColors interface{} `json:"aliasColors"` // XXX
    Bars        bool        `json:"bars"`
    DashLength  *uint       `json:"dashLength,omitempty"`
    Dashes      *bool       `json:"dashes,omitempty"`
    Decimals    *uint       `json:"decimals,omitempty"`
    Fill        int         `json:"fill"`

    Legend          Legend           `json:"legend,omitempty"`
    LeftYAxisLabel  *string          `json:"leftYAxisLabel,omitempty"`
    Lines           bool             `json:"lines"`
    Linewidth       uint             `json:"linewidth"`
    NullPointMode   string           `json:"nullPointMode"`
    Percentage      bool             `json:"percentage"`
    Pointradius     float32          `json:"pointradius"`
    Points          bool             `json:"points"`
    RightYAxisLabel *string          `json:"rightYAxisLabel,omitempty"`
    SeriesOverrides []SeriesOverride `json:"seriesOverrides,omitempty"`
    SpaceLength     *uint            `json:"spaceLength,omitempty"`
    Stack           bool             `json:"stack"`
    SteppedLine     bool             `json:"steppedLine"`
    Targets         []Target         `json:"targets,omitempty"`
    Thresholds      []Threshold      `json:"thresholds,omitempty"`
    TimeFrom        *string          `json:"timeFrom,omitempty"`
    TimeShift       *string          `json:"timeShift,omitempty"`
    Tooltip         Tooltip          `json:"tooltip"`
    XAxis           bool             `json:"x-axis,omitempty"`
    YAxis           bool             `json:"y-axis,omitempty"`
    YFormats        []string         `json:"y_formats,omitempty"`
    Xaxis           Axis             `json:"xaxis"` // was added in Grafana 4.x?
    Yaxes           []Axis           `json:"yaxes"` // was added in Grafana 4.x?
}

type HealthResponse Uses

type HealthResponse struct {
    Commit   string `json:"commit"`
    Database string `json:"database"`
    Version  string `json:"version"`
}

HealthResponse represents the health of grafana server

type Height Uses

type Height string

Height of rows maybe passed as number (ex 200) or as string (ex "200px") or empty string

func (*Height) UnmarshalJSON Uses

func (h *Height) UnmarshalJSON(raw []byte) error

type IntString Uses

type IntString struct {
    Value int64
    Valid bool
}

IntString represents special type for json values that could be strings or ints: 100 or "100"

func NewIntString Uses

func NewIntString(i int64) *IntString

func (*IntString) MarshalJSON Uses

func (v *IntString) MarshalJSON() ([]byte, error)

MarshalJSON implements custom marshalling for IntString type

func (*IntString) UnmarshalJSON Uses

func (v *IntString) UnmarshalJSON(raw []byte) error

UnmarshalJSON implements custom unmarshalling for IntString type

type Legend Uses

type Legend struct {
    AlignAsTable bool  `json:"alignAsTable"`
    Avg          bool  `json:"avg"`
    Current      bool  `json:"current"`
    HideEmpty    bool  `json:"hideEmpty"`
    HideZero     bool  `json:"hideZero"`
    Max          bool  `json:"max"`
    Min          bool  `json:"min"`
    RightSide    bool  `json:"rightSide"`
    Show         bool  `json:"show"`
    SideWidth    *uint `json:"sideWidth,omitempty"`
    Total        bool  `json:"total"`
    Values       bool  `json:"values"`
}

for a graph panel

type Link struct {
    Title       string   `json:"title"`
    Type        string   `json:"type"`
    AsDropdown  *bool    `json:"asDropdown,omitempty"`
    DashURI     *string  `json:"dashUri,omitempty"`
    Dashboard   *string  `json:"dashboard,omitempty"`
    Icon        *string  `json:"icon,omitempty"`
    IncludeVars bool     `json:"includeVars"`
    KeepTime    *bool    `json:"keepTime,omitempty"`
    Params      *string  `json:"params,omitempty"`
    Tags        []string `json:"tags,omitempty"`
    TargetBlank *bool    `json:"targetBlank,omitempty"`
    Tooltip     *string  `json:"tooltip,omitempty"`
    URL         *string  `json:"url,omitempty"`
}

Link represents link to another dashboard or external weblink

type MapType Uses

type MapType struct {
    Name  *string `json:"name,omitempty"`
    Value *int    `json:"value,omitempty"`
}

type Option Uses

type Option struct {
    Text     string `json:"text"`
    Value    string `json:"value"`
    Selected bool   `json:"selected"`
}

for templateVar

type Options Uses

type Options struct {
    Orientation   string `json:"orientation"`
    TextMode      string `json:"textMode"`
    ColorMode     string `json:"colorMode"`
    GraphMode     string `json:"graphMode"`
    JustifyMode   string `json:"justifyMode"`
    DisplayMode   string `json:"displayMode"`
    Content       string `json:"content"`
    Mode          string `json:"mode"`
    ReduceOptions struct {
        Values bool     `json:"values"`
        Fields string   `json:"fields"`
        Calcs  []string `json:"calcs"`
    }   `json:"reduceOptions"`
}

type Org Uses

type Org struct {
    ID   uint   `json:"id"`
    Name string `json:"name"`
}

type OrgUser Uses

type OrgUser struct {
    ID    uint   `json:"id"`
    OrgId uint   `json:"orgId"`
    Email string `json:"email"`
    Login string `json:"login"`
    Role  string `json:"role"`
}

type PageUsers Uses

type PageUsers struct {
    TotalCount int    `json:"totalCount"`
    Users      []User `json:"users"`
    Page       int    `json:"page"`
    PerPage    int    `json:"perPage"`
}

type Panel Uses

type Panel struct {
    CommonPanel
    // Should be initialized only one type of panels.
    // OfType field defines which of types below will be used.
    *GraphPanel
    *TablePanel
    *TextPanel
    *SinglestatPanel
    *StatPanel
    *DashlistPanel
    *PluginlistPanel
    *RowPanel
    *AlertlistPanel
    *BarGaugePanel
    *CustomPanel
}

Panel represents panels of different types defined in Grafana.

func NewAlertlist Uses

func NewAlertlist(title string) *Panel

func NewCustom Uses

func NewCustom(title string) *Panel

NewCustom initializes panel with a stat panel.

func NewDashlist Uses

func NewDashlist(title string) *Panel

NewDashlist initializes panel with a dashlist panel.

func NewGraph Uses

func NewGraph(title string) *Panel

NewGraph initializes panel with a graph panel.

func NewPluginlist Uses

func NewPluginlist(title string) *Panel

NewPluginlist initializes panel with a stat panel.

func NewSinglestat Uses

func NewSinglestat(title string) *Panel

NewSinglestat initializes panel with a singlestat panel.

func NewStat Uses

func NewStat(title string) *Panel

NewStat initializes panel with a stat panel.

func NewTable Uses

func NewTable(title string) *Panel

NewTable initializes panel with a table panel.

func NewText Uses

func NewText(title string) *Panel

NewText initializes panel with a text panel.

func (*Panel) AddTarget Uses

func (p *Panel) AddTarget(t *Target)

AddTarget adds a new target as defined in the argument but with refId letter incremented. Value of refID from the argument will be used only if no target with such value already exists.

func (*Panel) GetTargets Uses

func (p *Panel) GetTargets() *[]Target

GetTargets is iterate over all panel targets. It just returns nil if no targets defined for panel of concrete type.

func (*Panel) MarshalJSON Uses

func (p *Panel) MarshalJSON() ([]byte, error)

func (*Panel) RepeatDatasourcesForEachTarget Uses

func (p *Panel) RepeatDatasourcesForEachTarget(dsNames ...string)

MapDatasources on all existing targets for the panel.

func (*Panel) RepeatTargetsForDatasources Uses

func (p *Panel) RepeatTargetsForDatasources(dsNames ...string)

RepeatTargetsForDatasources repeats all existing targets for a panel for all provided in the argument datasources. Existing datasources of targets are ignored.

func (*Panel) ResetTargets Uses

func (p *Panel) ResetTargets()

ResetTargets delete all targets defined for a panel.

func (*Panel) SetTarget Uses

func (p *Panel) SetTarget(t *Target)

SetTarget updates a target if target with such refId exists or creates a new one.

func (*Panel) UnmarshalJSON Uses

func (p *Panel) UnmarshalJSON(b []byte) (err error)

type PatchAnnotationRequest Uses

type PatchAnnotationRequest struct {
    Time    int64    `json:"time,omitempty"`
    TimeEnd int64    `json:"timeEnd,omitempty"`
    Tags    []string `json:"tags,omitempty"`
    Text    string   `json:"text,omitempty"`
}

PatchAnnotationRequest is a request to patch an existing annotation

type PluginlistPanel Uses

type PluginlistPanel struct {
    Limit int `json:"limit,omitempty"`
}

type Preferences Uses

type Preferences struct {
    Theme           string `json:"theme,omitempty"`
    HomeDashboardId uint   `json:"homeDashboardId,omitempty"`
    Timezone        string `json:"timezone,omitempty"`
}

type RangeMap Uses

type RangeMap struct {
    From *string `json:"from,omitempty"`
    Text *string `json:"text,omitempty"`
    To   *string `json:"to,omitempty"`
}

type Row Uses

type Row struct {
    Title     string  `json:"title"`
    ShowTitle bool    `json:"showTitle"`
    Collapse  bool    `json:"collapse"`
    Editable  bool    `json:"editable"`
    Height    Height  `json:"height"`
    Panels    []Panel `json:"panels"`
    Repeat    *string `json:"repeat"`
}

Row represents single row of Grafana dashboard.

func (*Row) Add Uses

func (r *Row) Add(panel *Panel)

func (*Row) AddCustom Uses

func (r *Row) AddCustom(data *CustomPanel)

func (*Row) AddDashlist Uses

func (r *Row) AddDashlist(data *DashlistPanel)

func (*Row) AddGraph Uses

func (r *Row) AddGraph(data *GraphPanel)

func (*Row) AddSinglestat Uses

func (r *Row) AddSinglestat(data *SinglestatPanel)

func (*Row) AddStat Uses

func (r *Row) AddStat(data *StatPanel)

func (*Row) AddTable Uses

func (r *Row) AddTable(data *TablePanel)

func (*Row) AddText Uses

func (r *Row) AddText(data *TextPanel)

type RowPanel Uses

type RowPanel struct {
    Panels    []Panel `json:"panels"`
    Collapsed bool    `json:"collapsed"`
}

type SearchParam Uses

type SearchParam func(*url.Values)

SearchParam is a type for specifying Search params.

func SearchDashboardID Uses

func SearchDashboardID(dashboardID int) SearchParam

SearchDashboardID specifies Search dashboard id's to search for. Can be specified multiple times, logical OR is applied.

func SearchFolderID Uses

func SearchFolderID(folderID int) SearchParam

SearchFolderID specifies Search folder id's to search for. Can be specified multiple times, logical OR is applied.

func SearchLimit Uses

func SearchLimit(limit uint) SearchParam

SearchLimit specifies maximum number of results from Search query. As of grafana 6.7 it has to be <= 5000. 0 stands for absence of parameter in a query. Specifying it multiple times is futile, only last one will be sent.

func SearchPage Uses

func SearchPage(page uint) SearchParam

SearchPage specifies Search page number to be queried for. Zero page is silently ignored, page numbers start from one. Specifying it multiple times is futile, only last one will be sent.

func SearchQuery Uses

func SearchQuery(query string) SearchParam

SearchQuery specifies Search search query. Empty query is silently ignored. Specifying it multiple times is futile, only last one will be sent.

func SearchStarred Uses

func SearchStarred(starred bool) SearchParam

SearchStarred specifies if Search should search for starred dashboards only. Specifying it multiple times is futile, only last one will be sent.

func SearchTag Uses

func SearchTag(tag string) SearchParam

SearchTag specifies Search tag to search for. Empty tag is silently ignored. Can be specified multiple times, logical OR is applied.

func SearchType Uses

func SearchType(searchType SearchParamType) SearchParam

SearchType specifies Search type to search for. Specifying it multiple times is futile, only last one will be sent.

type SearchParamType Uses

type SearchParamType string

SearchParamType is a type accepted by SearchType func.

const (
    SearchTypeFolder    SearchParamType = "dash-folder"
    SearchTypeDashboard SearchParamType = "dash-db"
)

Search entities to be used with SearchType().

type SeriesOverride Uses

type SeriesOverride struct {
    Alias         string      `json:"alias"`
    Bars          *bool       `json:"bars,omitempty"`
    Color         *string     `json:"color,omitempty"`
    Fill          *int        `json:"fill,omitempty"`
    FillBelowTo   *string     `json:"fillBelowTo,omitempty"`
    Legend        *bool       `json:"legend,omitempty"`
    Lines         *bool       `json:"lines,omitempty"`
    Stack         *BoolString `json:"stack,omitempty"`
    Transform     *string     `json:"transform,omitempty"`
    YAxis         *int        `json:"yaxis,omitempty"`
    ZIndex        *int        `json:"zindex,omitempty"`
    NullPointMode *string     `json:"nullPointMode,omitempty"`
}

for a graph panel

type SetDashboardParams Uses

type SetDashboardParams struct {
    FolderID  int
    Overwrite bool
}

SetDashboardParams contains the extra parameteres that affects where and how the dashboard will be stored

type SinglestatPanel Uses

type SinglestatPanel struct {
    Colors          []string    `json:"colors"`
    ColorValue      bool        `json:"colorValue"`
    ColorBackground bool        `json:"colorBackground"`
    Decimals        int         `json:"decimals"`
    Format          string      `json:"format"`
    Gauge           Gauge       `json:"gauge,omitempty"`
    MappingType     *uint       `json:"mappingType,omitempty"`
    MappingTypes    []*MapType  `json:"mappingTypes,omitempty"`
    MaxDataPoints   *IntString  `json:"maxDataPoints,omitempty"`
    NullPointMode   string      `json:"nullPointMode"`
    Postfix         *string     `json:"postfix,omitempty"`
    PostfixFontSize *string     `json:"postfixFontSize,omitempty"`
    Prefix          *string     `json:"prefix,omitempty"`
    PrefixFontSize  *string     `json:"prefixFontSize,omitempty"`
    RangeMaps       []*RangeMap `json:"rangeMaps,omitempty"`
    SparkLine       SparkLine   `json:"sparkline,omitempty"`
    Targets         []Target    `json:"targets,omitempty"`
    Thresholds      string      `json:"thresholds"`
    ValueFontSize   string      `json:"valueFontSize"`
    ValueMaps       []ValueMap  `json:"valueMaps"`
    ValueName       string      `json:"valueName"`
}

type Sort Uses

type Sort struct {
    Col  int  `json:"col"`
    Desc bool `json:"desc"`
}

for a graph panel

type SparkLine Uses

type SparkLine struct {
    FillColor *string  `json:"fillColor,omitempty"`
    Full      bool     `json:"full,omitempty"`
    LineColor *string  `json:"lineColor,omitempty"`
    Show      bool     `json:"show,omitempty"`
    YMin      *float64 `json:"ymin,omitempty"`
    YMax      *float64 `json:"ymax,omitempty"`
}

for a stat

type StackdriverAlignOption Uses

type StackdriverAlignOption struct {
    Label       string   `json:"label"`
    MetricKinds []string `json:"metricKinds"`
    Text        string   `json:"text"`
    Value       string   `json:"value"`
    ValueTypes  []string `json:"valueTypes"`
}

StackdriverAlignOption defines a single alignment option shown in Grafana during query configuration.

type StackdriverAlignOptions Uses

type StackdriverAlignOptions struct {
    Expanded bool                     `json:"expanded"`
    Label    string                   `json:"label"`
    Options  []StackdriverAlignOption `json:"options"`
}

StackdriverAlignOptions defines the list of alignment options shown in Grafana during query configuration.

type StatPanel Uses

type StatPanel struct {
    Colors          []string    `json:"colors"`
    ColorValue      bool        `json:"colorValue"`
    ColorBackground bool        `json:"colorBackground"`
    Decimals        int         `json:"decimals"`
    Format          string      `json:"format"`
    Gauge           Gauge       `json:"gauge,omitempty"`
    MappingType     *uint       `json:"mappingType,omitempty"`
    MappingTypes    []*MapType  `json:"mappingTypes,omitempty"`
    MaxDataPoints   *IntString  `json:"maxDataPoints,omitempty"`
    NullPointMode   string      `json:"nullPointMode"`
    Postfix         *string     `json:"postfix,omitempty"`
    PostfixFontSize *string     `json:"postfixFontSize,omitempty"`
    Prefix          *string     `json:"prefix,omitempty"`
    PrefixFontSize  *string     `json:"prefixFontSize,omitempty"`
    RangeMaps       []*RangeMap `json:"rangeMaps,omitempty"`
    SparkLine       SparkLine   `json:"sparkline,omitempty"`
    Targets         []Target    `json:"targets,omitempty"`
    Thresholds      string      `json:"thresholds"`
    ValueFontSize   string      `json:"valueFontSize"`
    ValueMaps       []ValueMap  `json:"valueMaps"`
    ValueName       string      `json:"valueName"`
    Options         Options     `json:"options"`
}

type StatusMessage Uses

type StatusMessage struct {
    ID      *uint   `json:"id"`
    OrgID   *uint   `json:"orgId"`
    Message *string `json:"message"`
    Slug    *string `json:"slug"`
    Version *int    `json:"version"`
    Status  *string `json:"status"`
    UID     *string `json:"uid"`
    URL     *string `json:"url"`
}

StatusMessage reflects status message as it returned by Grafana REST API.

type TablePanel Uses

type TablePanel struct {
    Columns   []Column      `json:"columns"`
    Sort      *Sort         `json:"sort,omitempty"`
    Styles    []ColumnStyle `json:"styles"`
    Transform string        `json:"transform"`
    Targets   []Target      `json:"targets,omitempty"`
    Scroll    bool          `json:"scroll"` // from grafana 3.x
}

type Target Uses

type Target struct {
    RefID      string `json:"refId"`
    Datasource string `json:"datasource,omitempty"`
    Hide       bool   `json:"hide,omitempty"`

    // For PostgreSQL
    Table        string `json:"table,omitempty"`
    TimeColumn   string `json:"timeColumn,omitempty"`
    MetricColumn string `json:"metricColumn,omitempty"`
    RawSql       string `json:"rawSql,omitempty"`
    Select       [][]struct {
        Params []string `json:"params,omitempty"`
        Type   string   `json:"type,omitempty"`
    }   `json:"select,omitempty"`
    Where []struct {
        Type     string   `json:"type,omitempty"`
        Name     string   `json:"name,omitempty"`
        Params   []string `json:"params,omitempty"`
        Datatype string   `json:"datatype,omitempty"`
    }   `json:"where,omitempty"`
    Group []struct {
        Type   string   `json:"type,omitempty"`
        Params []string `json:"params,omitempty"`
    }   `json:"group,omitempty"`

    // For Prometheus
    Expr           string `json:"expr,omitempty"`
    IntervalFactor int    `json:"intervalFactor,omitempty"`
    Interval       string `json:"interval,omitempty"`
    Step           int    `json:"step,omitempty"`
    LegendFormat   string `json:"legendFormat,omitempty"`
    Instant        bool   `json:"instant,omitempty"`
    Format         string `json:"format,omitempty"`

    // For InfluxDB
    Measurement string `json:"measurement,omitempty"`

    // For Elasticsearch
    DsType  *string `json:"dsType,omitempty"`
    Metrics []struct {
        ID    string `json:"id"`
        Field string `json:"field"`
        Type  string `json:"type"`
    }   `json:"metrics,omitempty"`
    Query      string `json:"query,omitempty"`
    Alias      string `json:"alias,omitempty"`
    RawQuery   bool   `json:"rawQuery,omitempty"`
    TimeField  string `json:"timeField,omitempty"`
    BucketAggs []struct {
        ID       string `json:"id"`
        Field    string `json:"field"`
        Type     string `json:"type"`
        Settings struct {
            Interval    string `json:"interval,omitempty"`
            MinDocCount int    `json:"min_doc_count"`
            Order       string `json:"order,omitempty"`
            OrderBy     string `json:"orderBy,omitempty"`
            Size        string `json:"size,omitempty"`
        }   `json:"settings"`
    }   `json:"bucketAggs,omitempty"`

    // For Graphite
    Target string `json:"target,omitempty"`

    // For CloudWatch
    Namespace  string            `json:"namespace,omitempty"`
    MetricName string            `json:"metricName,omitempty"`
    Statistics []string          `json:"statistics,omitempty"`
    Dimensions map[string]string `json:"dimensions,omitempty"`
    Period     string            `json:"period,omitempty"`
    Region     string            `json:"region,omitempty"`

    // For the Stackdriver data source. Find out more information at
    // https:/grafana.com/docs/grafana/v6.0/features/datasources/stackdriver/
    ProjectName        string                    `json:"projectName,omitempty"`
    AlignOptions       []StackdriverAlignOptions `json:"alignOptions,omitempty"`
    AliasBy            string                    `json:"aliasBy,omitempty"`
    MetricType         string                    `json:"metricType,omitempty"`
    MetricKind         string                    `json:"metricKind,omitempty"`
    Filters            []string                  `json:"filters,omitempty"`
    AlignmentPeriod    string                    `json:"alignmentPeriod,omitempty"`
    CrossSeriesReducer string                    `json:"crossSeriesReducer,omitempty"`
    PerSeriesAligner   string                    `json:"perSeriesAligner,omitempty"`
    ValueType          string                    `json:"valueType,omitempty"`
    GroupBys           []string                  `json:"groupBys,omitempty"`
}

for an any panel

type TemplateVar Uses

type TemplateVar struct {
    Name        string   `json:"name"`
    Type        string   `json:"type"`
    Auto        bool     `json:"auto,omitempty"`
    AutoCount   *int     `json:"auto_count,omitempty"`
    Datasource  *string  `json:"datasource"`
    Refresh     BoolInt  `json:"refresh"`
    Options     []Option `json:"options"`
    IncludeAll  bool     `json:"includeAll"`
    AllFormat   string   `json:"allFormat"`
    AllValue    string   `json:"allValue"`
    Multi       bool     `json:"multi"`
    MultiFormat string   `json:"multiFormat"`
    Query       string   `json:"query"`
    Regex       string   `json:"regex"`
    Current     Current  `json:"current"`
    Label       string   `json:"label"`
    Hide        uint8    `json:"hide"`
    Sort        int      `json:"sort"`
}

type Templating Uses

type Templating struct {
    List []TemplateVar `json:"list"`
}

type TextPanel Uses

type TextPanel struct {
    Content     string        `json:"content"`
    Mode        string        `json:"mode"`
    PageSize    uint          `json:"pageSize"`
    Scroll      bool          `json:"scroll"`
    ShowHeader  bool          `json:"showHeader"`
    Sort        Sort          `json:"sort"`
    Styles      []ColumnStyle `json:"styles"`
    FieldConfig FieldConfig   `json:"fieldConfig"`
    Options     struct {
        Content string `json:"content"`
        Mode    string `json:"mode"`
    }   `json:"options"`
}

type Threshold Uses

type Threshold struct {
    // the alert threshold value, we do not omitempty, since 0 is a valid
    // threshold
    Value float32 `json:"value"`
    // critical, warning, ok, custom
    ColorMode string `json:"colorMode,omitempty"`
    // gt or lt
    Op   string `json:"op,omitempty"`
    Fill bool   `json:"fill"`
    Line bool   `json:"line"`
    // hexadecimal color (e.g. #629e51, only when ColorMode is "custom")
    FillColor string `json:"fillColor,omitempty"`
    // hexadecimal color (e.g. #629e51, only when ColorMode is "custom")
    LineColor string `json:"lineColor,omitempty"`
    // left or right
    Yaxis string `json:"yaxis,omitempty"`
}

type Time Uses

type Time struct {
    From string `json:"from"`
    To   string `json:"to"`
}

type Timepicker Uses

type Timepicker struct {
    Now              *bool    `json:"now,omitempty"`
    RefreshIntervals []string `json:"refresh_intervals"`
    TimeOptions      []string `json:"time_options"`
}

type Tooltip Uses

type Tooltip struct {
    Shared       bool   `json:"shared"`
    ValueType    string `json:"value_type"`
    MsResolution bool   `json:"msResolution,omitempty"` // was added in Grafana 3.x
    Sort         int    `json:"sort,omitempty"`
}

type User Uses

type User struct {
    ID             uint   `json:"id"`
    Login          string `json:"login"`
    Name           string `json:"name"`
    Email          string `json:"email"`
    Theme          string `json:"theme"`
    OrgID          uint   `json:"orgId"`
    Password       string `json:"password"`
    IsGrafanaAdmin bool   `json:"isGrafanaAdmin"`
}

type UserPermissions Uses

type UserPermissions struct {
    IsGrafanaAdmin bool `json:"isGrafanaAdmin"`
}

type UserRole Uses

type UserRole struct {
    LoginOrEmail string `json:"loginOrEmail"`
    Role         string `json:"role"`
}

type ValueMap Uses

type ValueMap struct {
    Op       string `json:"op"`
    TextType string `json:"text"`
    Value    string `json:"value"`
}

for a stat

Package sdk imports 15 packages (graph) and is imported by 20 packages. Updated 2021-01-28. Refresh now. Tools for package owners.