Documentation
¶
Index ¶
- Constants
- Variables
- type Correlation
- type CorrelationConfig
- type CorrelationConfigType
- type CorrelationConfigUpdateDTO
- type CorrelationsService
- func (s CorrelationsService) CountCorrelations(ctx context.Context) (*quota.Map, error)
- func (s CorrelationsService) CreateCorrelation(ctx context.Context, cmd CreateCorrelationCommand) (Correlation, error)
- func (s CorrelationsService) DeleteCorrelation(ctx context.Context, cmd DeleteCorrelationCommand) error
- func (s CorrelationsService) DeleteCorrelationsBySourceUID(ctx context.Context, cmd DeleteCorrelationsBySourceUIDCommand) error
- func (s CorrelationsService) DeleteCorrelationsByTargetUID(ctx context.Context, cmd DeleteCorrelationsByTargetUIDCommand) error
- func (s CorrelationsService) GetCorrelation(ctx context.Context, cmd GetCorrelationQuery) (Correlation, error)
- func (s CorrelationsService) GetCorrelations(ctx context.Context, cmd GetCorrelationsQuery) (GetCorrelationsResponseBody, error)
- func (s CorrelationsService) GetCorrelationsBySourceUID(ctx context.Context, cmd GetCorrelationsBySourceUIDQuery) ([]Correlation, error)
- func (s CorrelationsService) UpdateCorrelation(ctx context.Context, cmd UpdateCorrelationCommand) (Correlation, error)
- func (s *CorrelationsService) Usage(ctx context.Context, scopeParams *quota.ScopeParameters) (*quota.Map, error)
- type CreateCorrelationCommand
- type CreateCorrelationParams
- type CreateCorrelationResponse
- type CreateCorrelationResponseBody
- type DeleteCorrelationCommand
- type DeleteCorrelationParams
- type DeleteCorrelationResponse
- type DeleteCorrelationResponseBody
- type DeleteCorrelationsBySourceUIDCommand
- type DeleteCorrelationsByTargetUIDCommand
- type GetCorrelationParams
- type GetCorrelationQuery
- type GetCorrelationResponse
- type GetCorrelationsBySourceUIDParams
- type GetCorrelationsBySourceUIDQuery
- type GetCorrelationsBySourceUIDResponse
- type GetCorrelationsParams
- type GetCorrelationsQuery
- type GetCorrelationsResponse
- type GetCorrelationsResponseBody
- type Service
- type Transformation
- type Transformations
- type UpdateCorrelationCommand
- type UpdateCorrelationParams
- type UpdateCorrelationResponse
- type UpdateCorrelationResponseBody
Constants ¶
const ( QuotaTargetSrv quota.TargetSrv = "correlations" QuotaTarget quota.Target = "correlations" )
Variables ¶
var ( ErrSourceDataSourceReadOnly = errors.New("source data source is read only") ErrSourceDataSourceDoesNotExists = errors.New("source data source does not exist") ErrTargetDataSourceDoesNotExists = errors.New("target data source does not exist") ErrCorrelationFailedGenerateUniqueUid = errors.New("failed to generate unique correlation UID") ErrCorrelationNotFound = errors.New("correlation not found") ErrUpdateCorrelationEmptyParams = errors.New("not enough parameters to edit correlation") ErrInvalidConfigType = errors.New("invalid correlation config type") ErrInvalidTransformationType = errors.New("invalid transformation type") ErrTransformationNotNested = errors.New("transformations must be nested under config") ErrTransformationRegexReqExp = errors.New("regex transformations require expression") ErrCorrelationsQuotaFailed = errors.New("error getting correlations quota") ErrCorrelationsQuotaReached = errors.New("correlations quota reached") )
var ( // ConfigurationPageAccess is used to protect the "Configure > correlations" tab access ConfigurationPageAccess = accesscontrol.EvalPermission(datasources.ActionRead) )
Functions ¶
This section is empty.
Types ¶
type Correlation ¶
type Correlation struct {
// Unique identifier of the correlation
// example: 50xhMlg9k
UID string `json:"uid" xorm:"pk 'uid'"`
// UID of the data source the correlation originates from
// example: d0oxYRg4z
SourceUID string `json:"sourceUID" xorm:"pk 'source_uid'"`
// UID of the data source the correlation points to
// example: PE1C5CBDA0504A6A3
TargetUID *string `json:"targetUID" xorm:"target_uid"`
// Label identifying the correlation
// example: My Label
Label string `json:"label" xorm:"label"`
// Description of the correlation
// example: Logs to Traces
Description string `json:"description" xorm:"description"`
// Correlation Configuration
Config CorrelationConfig `json:"config" xorm:"jsonb config"`
}
Correlation is the model for correlations definitions swagger:model
type CorrelationConfig ¶
type CorrelationConfig struct {
// Field used to attach the correlation link
// required:true
// example: message
Field string `json:"field" binding:"Required"`
// Target type
// required:true
Type CorrelationConfigType `json:"type" binding:"Required"`
// Target data query
// required:true
// example: {"prop1":"value1","prop2":"value"}
Target map[string]interface{} `json:"target" binding:"Required"`
// Source data transformations
// required:false
// example: [{"type":"logfmt"}]
Transformations Transformations `json:"transformations,omitempty"`
}
swagger:model
func (CorrelationConfig) MarshalJSON ¶
func (c CorrelationConfig) MarshalJSON() ([]byte, error)
type CorrelationConfigType ¶
type CorrelationConfigType string
const (
ConfigTypeQuery CorrelationConfigType = "query"
)
func (CorrelationConfigType) Validate ¶
func (t CorrelationConfigType) Validate() error
type CorrelationConfigUpdateDTO ¶
type CorrelationConfigUpdateDTO struct {
// Field used to attach the correlation link
// example: message
Field *string `json:"field"`
// Target type
Type *CorrelationConfigType `json:"type"`
// Target data query
// example: {"prop1":"value1","prop2":"value"}
Target *map[string]interface{} `json:"target"`
// Source data transformations
// example: [{"type": "logfmt"},{"type":"regex","expression":"(Superman|Batman)", "variable":"name"}]
Transformations []Transformation `json:"transformations"`
}
swagger:model
func (CorrelationConfigUpdateDTO) Validate ¶
func (c CorrelationConfigUpdateDTO) Validate() error
type CorrelationsService ¶
type CorrelationsService struct {
SQLStore db.DB
RouteRegister routing.RouteRegister
DataSourceService datasources.DataSourceService
AccessControl accesscontrol.AccessControl
QuotaService quota.Service
// contains filtered or unexported fields
}
func ProvideService ¶
func ProvideService(sqlStore db.DB, routeRegister routing.RouteRegister, ds datasources.DataSourceService, ac accesscontrol.AccessControl, bus bus.Bus, qs quota.Service, cfg *setting.Cfg, ) (*CorrelationsService, error)
func (CorrelationsService) CountCorrelations ¶
func (CorrelationsService) CreateCorrelation ¶
func (s CorrelationsService) CreateCorrelation(ctx context.Context, cmd CreateCorrelationCommand) (Correlation, error)
func (CorrelationsService) DeleteCorrelation ¶
func (s CorrelationsService) DeleteCorrelation(ctx context.Context, cmd DeleteCorrelationCommand) error
func (CorrelationsService) DeleteCorrelationsBySourceUID ¶
func (s CorrelationsService) DeleteCorrelationsBySourceUID(ctx context.Context, cmd DeleteCorrelationsBySourceUIDCommand) error
func (CorrelationsService) DeleteCorrelationsByTargetUID ¶
func (s CorrelationsService) DeleteCorrelationsByTargetUID(ctx context.Context, cmd DeleteCorrelationsByTargetUIDCommand) error
func (CorrelationsService) GetCorrelation ¶
func (s CorrelationsService) GetCorrelation(ctx context.Context, cmd GetCorrelationQuery) (Correlation, error)
func (CorrelationsService) GetCorrelations ¶
func (s CorrelationsService) GetCorrelations(ctx context.Context, cmd GetCorrelationsQuery) (GetCorrelationsResponseBody, error)
func (CorrelationsService) GetCorrelationsBySourceUID ¶
func (s CorrelationsService) GetCorrelationsBySourceUID(ctx context.Context, cmd GetCorrelationsBySourceUIDQuery) ([]Correlation, error)
func (CorrelationsService) UpdateCorrelation ¶
func (s CorrelationsService) UpdateCorrelation(ctx context.Context, cmd UpdateCorrelationCommand) (Correlation, error)
func (*CorrelationsService) Usage ¶
func (s *CorrelationsService) Usage(ctx context.Context, scopeParams *quota.ScopeParameters) (*quota.Map, error)
type CreateCorrelationCommand ¶
type CreateCorrelationCommand struct {
// UID of the data source for which correlation is created.
SourceUID string `json:"-"`
OrgId int64 `json:"-"`
SkipReadOnlyCheck bool `json:"-"`
// Target data source UID to which the correlation is created. required if config.type = query
// example: PE1C5CBDA0504A6A3
TargetUID *string `json:"targetUID"`
// Optional label identifying the correlation
// example: My label
Label string `json:"label"`
// Optional description of the correlation
// example: Logs to Traces
Description string `json:"description"`
// Arbitrary configuration object handled in frontend
Config CorrelationConfig `json:"config" binding:"Required"`
}
CreateCorrelationCommand is the command for creating a correlation swagger:model
func (CreateCorrelationCommand) Validate ¶
func (c CreateCorrelationCommand) Validate() error
type CreateCorrelationParams ¶
type CreateCorrelationParams struct {
// in:body
// required:true
Body CreateCorrelationCommand `json:"body"`
// in:path
// required:true
SourceUID string `json:"sourceUID"`
}
swagger:parameters createCorrelation
type CreateCorrelationResponse ¶
type CreateCorrelationResponse struct {
// in: body
Body CreateCorrelationResponseBody `json:"body"`
}
swagger:response createCorrelationResponse
type CreateCorrelationResponseBody ¶
type CreateCorrelationResponseBody struct {
Result Correlation `json:"result"`
// example: Correlation created
Message string `json:"message"`
}
CreateCorrelationResponse is the response struct for CreateCorrelationCommand swagger:model
type DeleteCorrelationCommand ¶
type DeleteCorrelationCommand struct {
// UID of the correlation to be deleted.
UID string
SourceUID string
OrgId int64
}
DeleteCorrelationCommand is the command for deleting a correlation
type DeleteCorrelationParams ¶
type DeleteCorrelationParams struct {
// in:path
// required:true
DatasourceUID string `json:"uid"`
// in:path
// required:true
CorrelationUID string `json:"correlationUID"`
}
swagger:parameters deleteCorrelation
type DeleteCorrelationResponse ¶
type DeleteCorrelationResponse struct {
// in: body
Body DeleteCorrelationResponseBody `json:"body"`
}
type DeleteCorrelationResponseBody ¶
type DeleteCorrelationResponseBody struct {
// example: Correlation deleted
Message string `json:"message"`
}
swagger:model
type DeleteCorrelationsBySourceUIDCommand ¶
type DeleteCorrelationsBySourceUIDCommand struct {
SourceUID string
}
type DeleteCorrelationsByTargetUIDCommand ¶
type DeleteCorrelationsByTargetUIDCommand struct {
TargetUID string
}
type GetCorrelationParams ¶
type GetCorrelationParams struct {
// in:path
// required:true
DatasourceUID string `json:"sourceUID"`
// in:path
// required:true
CorrelationUID string `json:"correlationUID"`
}
swagger:parameters getCorrelation
type GetCorrelationQuery ¶
type GetCorrelationQuery struct {
// UID of the correlation
UID string `json:"-"`
// UID of the source data source
SourceUID string `json:"-"`
OrgId int64 `json:"-"`
}
GetCorrelationQuery is the query to retrieve a single correlation
type GetCorrelationResponse ¶
type GetCorrelationResponse struct {
// in: body
Body Correlation `json:"body"`
}
type GetCorrelationsBySourceUIDParams ¶
type GetCorrelationsBySourceUIDParams struct {
// in:path
// required:true
DatasourceUID string `json:"sourceUID"`
}
swagger:parameters getCorrelationsBySourceUID
type GetCorrelationsBySourceUIDQuery ¶
GetCorrelationsBySourceUIDQuery is the query to retrieve all correlations originating by the given Data Source
type GetCorrelationsBySourceUIDResponse ¶
type GetCorrelationsBySourceUIDResponse struct {
// in: body
Body []Correlation `json:"body"`
}
swagger:response getCorrelationsBySourceUIDResponse
type GetCorrelationsParams ¶
type GetCorrelationsParams struct {
// Limit the maximum number of correlations to return per page
// in:query
// required:false
// default:100
// maximum: 1000
Limit int64 `json:"limit"`
// Page index for starting fetching correlations
// in:query
// required:false
// default:1
Page int64 `json:"page"`
// Source datasource UID filter to be applied to correlations
// in:query
// type: array
// collectionFormat: multi
// required:false
SourceUIDs []string `json:"sourceUID"`
}
swagger:parameters getCorrelations
type GetCorrelationsQuery ¶
type GetCorrelationsQuery struct {
OrgId int64 `json:"-"`
// Limit the maximum number of correlations to return per page
// in:query
// required:false
// default:100
Limit int64 `json:"limit"`
// Page index for starting fetching correlations
// in:query
// required:false
// default:1
Page int64 `json:"page"`
// Source datasource UID filter to be applied to correlations
// in:query
// required:false
SourceUIDs []string `json:"sourceuid"`
}
GetCorrelationsQuery is the query to retrieve all correlations
type GetCorrelationsResponse ¶
type GetCorrelationsResponse struct {
// in: body
Body []Correlation `json:"body"`
}
type GetCorrelationsResponseBody ¶
type GetCorrelationsResponseBody struct {
Correlations []Correlation `json:"correlations"`
TotalCount int64 `json:"totalCount"`
Page int64 `json:"page"`
Limit int64 `json:"limit"`
}
type Service ¶
type Service interface {
CreateCorrelation(ctx context.Context, cmd CreateCorrelationCommand) (Correlation, error)
DeleteCorrelation(ctx context.Context, cmd DeleteCorrelationCommand) error
DeleteCorrelationsBySourceUID(ctx context.Context, cmd DeleteCorrelationsBySourceUIDCommand) error
DeleteCorrelationsByTargetUID(ctx context.Context, cmd DeleteCorrelationsByTargetUIDCommand) error
}
type Transformation ¶
type Transformations ¶
type Transformations []Transformation
func (Transformations) Validate ¶
func (t Transformations) Validate() error
type UpdateCorrelationCommand ¶
type UpdateCorrelationCommand struct {
// UID of the correlation to be updated.
UID string `json:"-"`
SourceUID string `json:"-"`
OrgId int64 `json:"-"`
// Optional label identifying the correlation
// example: My label
Label *string `json:"label"`
// Optional description of the correlation
// example: Logs to Traces
Description *string `json:"description"`
// Correlation Configuration
Config *CorrelationConfigUpdateDTO `json:"config"`
}
UpdateCorrelationCommand is the command for updating a correlation swagger:model
func (UpdateCorrelationCommand) Validate ¶
func (c UpdateCorrelationCommand) Validate() error
type UpdateCorrelationParams ¶
type UpdateCorrelationParams struct {
// in:path
// required:true
DatasourceUID string `json:"sourceUID"`
// in:path
// required:true
CorrelationUID string `json:"correlationUID"`
// in: body
Body UpdateCorrelationCommand `json:"body"`
}
swagger:parameters updateCorrelation
type UpdateCorrelationResponse ¶
type UpdateCorrelationResponse struct {
// in: body
Body UpdateCorrelationResponseBody `json:"body"`
}
swagger:response updateCorrelationResponse
type UpdateCorrelationResponseBody ¶
type UpdateCorrelationResponseBody struct {
Result Correlation `json:"result"`
// example: Correlation updated
Message string `json:"message"`
}
swagger:model