Documentation ¶
Index ¶
- Constants
- Variables
- type Agg
- type AggArray
- type AggBuilder
- type Aggregation
- type BoolQuery
- type BoolQueryBuilder
- type Client
- type DateHistogramAgg
- type ExtendedBounds
- type Filter
- type FilterQueryBuilder
- type FiltersAggregation
- type GeoHashGridAggregation
- type HistogramAgg
- type MetricAggregation
- type MultiSearchRequest
- type MultiSearchRequestBuilder
- type MultiSearchResponse
- type PipelineAggregation
- type Query
- type QueryBuilder
- type QueryStringFilter
- type RangeFilter
- type SearchRequest
- type SearchRequestBuilder
- func (b *SearchRequestBuilder) AddDocValueField(field string) *SearchRequestBuilder
- func (b *SearchRequestBuilder) Agg() AggBuilder
- func (b *SearchRequestBuilder) Build() (*SearchRequest, error)
- func (b *SearchRequestBuilder) Query() *QueryBuilder
- func (b *SearchRequestBuilder) Size(size int) *SearchRequestBuilder
- func (b *SearchRequestBuilder) SortDesc(field, unmappedType string) *SearchRequestBuilder
- type SearchResponse
- type SearchResponseHits
- type TermsAggregation
Constants ¶
const DateFormatEpochMS = "epoch_millis"
DateFormatEpochMS represents a date format of epoch milliseconds (epoch_millis)
Variables ¶
var NewClient = func(ctx context.Context, ds *models.DataSource, timeRange *tsdb.TimeRange) (Client, error) { version, err := ds.JsonData.Get("esVersion").Int() if err != nil { return nil, fmt.Errorf("elasticsearch version is required, err=%v", err) } timeField, err := ds.JsonData.Get("timeField").String() if err != nil { return nil, fmt.Errorf("elasticsearch time field name is required, err=%v", err) } indexInterval := ds.JsonData.Get("interval").MustString() ip, err := newIndexPattern(indexInterval, ds.Database) if err != nil { return nil, err } indices, err := ip.GetIndices(timeRange) if err != nil { return nil, err } clientLog.Debug("Creating new client", "version", version, "timeField", timeField, "indices", strings.Join(indices, ", ")) switch version { case 2, 5, 56, 60: return &baseClientImpl{ ctx: ctx, ds: ds, version: version, timeField: timeField, indices: indices, timeRange: timeRange, }, nil } return nil, fmt.Errorf("elasticsearch version=%d is not supported", version) }
NewClient creates a new elasticsearch client
Functions ¶
This section is empty.
Types ¶
type Agg ¶
type Agg struct { Key string Aggregation *aggContainer }
Agg represents a key and aggregation
func (*Agg) MarshalJSON ¶
MarshalJSON returns the JSON encoding of the agg
type AggArray ¶
type AggArray []*Agg
AggArray represents a collection of key/aggregation pairs
func (AggArray) MarshalJSON ¶
MarshalJSON returns the JSON encoding of the agg
type AggBuilder ¶
type AggBuilder interface { Histogram(key, field string, fn func(a *HistogramAgg, b AggBuilder)) AggBuilder DateHistogram(key, field string, fn func(a *DateHistogramAgg, b AggBuilder)) AggBuilder Terms(key, field string, fn func(a *TermsAggregation, b AggBuilder)) AggBuilder Filters(key string, fn func(a *FiltersAggregation, b AggBuilder)) AggBuilder GeoHashGrid(key, field string, fn func(a *GeoHashGridAggregation, b AggBuilder)) AggBuilder Metric(key, metricType, field string, fn func(a *MetricAggregation)) AggBuilder Pipeline(key, pipelineType string, bucketPath interface{}, fn func(a *PipelineAggregation)) AggBuilder Build() (AggArray, error) }
AggBuilder represents an aggregation builder
type BoolQuery ¶
type BoolQuery struct {
Filters []Filter
}
BoolQuery represents a bool query
func (*BoolQuery) MarshalJSON ¶
MarshalJSON returns the JSON encoding of the boolean query.
type BoolQueryBuilder ¶
type BoolQueryBuilder struct {
// contains filtered or unexported fields
}
BoolQueryBuilder represents a bool query builder
func NewBoolQueryBuilder ¶
func NewBoolQueryBuilder() *BoolQueryBuilder
NewBoolQueryBuilder create a new bool query builder
func (*BoolQueryBuilder) Build ¶
func (b *BoolQueryBuilder) Build() (*BoolQuery, error)
Build builds and return a bool query builder
func (*BoolQueryBuilder) Filter ¶
func (b *BoolQueryBuilder) Filter() *FilterQueryBuilder
Filter creates and return a filter query builder
type Client ¶
type Client interface { GetVersion() int GetTimeField() string GetMinInterval(queryInterval string) (time.Duration, error) ExecuteMultisearch(r *MultiSearchRequest) (*MultiSearchResponse, error) MultiSearch() *MultiSearchRequestBuilder }
Client represents a client which can interact with elasticsearch api
type DateHistogramAgg ¶
type DateHistogramAgg struct { Field string `json:"field"` Interval string `json:"interval,omitempty"` MinDocCount int `json:"min_doc_count"` Missing *string `json:"missing,omitempty"` ExtendedBounds *ExtendedBounds `json:"extended_bounds"` Format string `json:"format"` Offset string `json:"offset,omitempty"` }
DateHistogramAgg represents a date histogram aggregation
type ExtendedBounds ¶
ExtendedBounds represents extended bounds
type FilterQueryBuilder ¶
type FilterQueryBuilder struct {
// contains filtered or unexported fields
}
FilterQueryBuilder represents a filter query builder
func NewFilterQueryBuilder ¶
func NewFilterQueryBuilder() *FilterQueryBuilder
NewFilterQueryBuilder creates a new filter query builder
func (*FilterQueryBuilder) AddDateRangeFilter ¶
func (b *FilterQueryBuilder) AddDateRangeFilter(timeField, lte, gte, format string) *FilterQueryBuilder
AddDateRangeFilter adds a new time range filter
func (*FilterQueryBuilder) AddQueryStringFilter ¶
func (b *FilterQueryBuilder) AddQueryStringFilter(querystring string, analyseWildcard bool) *FilterQueryBuilder
AddQueryStringFilter adds a new query string filter
func (*FilterQueryBuilder) Build ¶
func (b *FilterQueryBuilder) Build() ([]Filter, error)
Build builds and return a filter query builder
type FiltersAggregation ¶
type FiltersAggregation struct {
Filters map[string]interface{} `json:"filters"`
}
FiltersAggregation represents a filters aggregation
type GeoHashGridAggregation ¶
GeoHashGridAggregation represents a geo hash grid aggregation
type HistogramAgg ¶
type HistogramAgg struct { Interval int `json:"interval,omitempty"` Field string `json:"field"` MinDocCount int `json:"min_doc_count"` Missing *int `json:"missing,omitempty"` }
HistogramAgg represents a histogram aggregation
type MetricAggregation ¶
MetricAggregation represents a metric aggregation
func (*MetricAggregation) MarshalJSON ¶
func (a *MetricAggregation) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the metric aggregation
type MultiSearchRequest ¶
type MultiSearchRequest struct {
Requests []*SearchRequest
}
MultiSearchRequest represents a multi search request
type MultiSearchRequestBuilder ¶
type MultiSearchRequestBuilder struct {
// contains filtered or unexported fields
}
MultiSearchRequestBuilder represents a builder which can build a multi search request
func NewMultiSearchRequestBuilder ¶
func NewMultiSearchRequestBuilder(version int) *MultiSearchRequestBuilder
NewMultiSearchRequestBuilder creates a new multi search request builder
func (*MultiSearchRequestBuilder) Build ¶
func (m *MultiSearchRequestBuilder) Build() (*MultiSearchRequest, error)
Build builds and return a multi search request
func (*MultiSearchRequestBuilder) Search ¶
func (m *MultiSearchRequestBuilder) Search(interval tsdb.Interval) *SearchRequestBuilder
Search initiates and returns a new search request builder
type MultiSearchResponse ¶
type MultiSearchResponse struct { Status int `json:"status,omitempty"` Responses []*SearchResponse `json:"responses"` }
MultiSearchResponse represents a multi search response
type PipelineAggregation ¶
type PipelineAggregation struct { BucketPath interface{} Settings map[string]interface{} }
PipelineAggregation represents a metric aggregation
func (*PipelineAggregation) MarshalJSON ¶
func (a *PipelineAggregation) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the pipeline aggregation
type QueryBuilder ¶
type QueryBuilder struct {
// contains filtered or unexported fields
}
QueryBuilder represents a query builder
func NewQueryBuilder ¶
func NewQueryBuilder() *QueryBuilder
NewQueryBuilder create a new query builder
func (*QueryBuilder) Bool ¶
func (b *QueryBuilder) Bool() *BoolQueryBuilder
Bool creates and return a query builder
func (*QueryBuilder) Build ¶
func (b *QueryBuilder) Build() (*Query, error)
Build builds and return a query builder
type QueryStringFilter ¶
QueryStringFilter represents a query string search filter
func (*QueryStringFilter) MarshalJSON ¶
func (f *QueryStringFilter) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the query string filter.
type RangeFilter ¶
RangeFilter represents a range search filter
func (*RangeFilter) MarshalJSON ¶
func (f *RangeFilter) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the query string filter.
type SearchRequest ¶
type SearchRequest struct { Index string Interval tsdb.Interval Size int Sort map[string]interface{} Query *Query Aggs AggArray CustomProps map[string]interface{} }
SearchRequest represents a search request
func (*SearchRequest) MarshalJSON ¶
func (r *SearchRequest) MarshalJSON() ([]byte, error)
MarshalJSON returns the JSON encoding of the request.
type SearchRequestBuilder ¶
type SearchRequestBuilder struct {
// contains filtered or unexported fields
}
SearchRequestBuilder represents a builder which can build a search request
func NewSearchRequestBuilder ¶
func NewSearchRequestBuilder(version int, interval tsdb.Interval) *SearchRequestBuilder
NewSearchRequestBuilder create a new search request builder
func (*SearchRequestBuilder) AddDocValueField ¶
func (b *SearchRequestBuilder) AddDocValueField(field string) *SearchRequestBuilder
AddDocValueField adds a doc value field to the search request
func (*SearchRequestBuilder) Agg ¶
func (b *SearchRequestBuilder) Agg() AggBuilder
Agg initiate and returns a new aggregation builder
func (*SearchRequestBuilder) Build ¶
func (b *SearchRequestBuilder) Build() (*SearchRequest, error)
Build builds and return a search request
func (*SearchRequestBuilder) Query ¶
func (b *SearchRequestBuilder) Query() *QueryBuilder
Query creates and return a query builder
func (*SearchRequestBuilder) Size ¶
func (b *SearchRequestBuilder) Size(size int) *SearchRequestBuilder
Size sets the size of the search request
func (*SearchRequestBuilder) SortDesc ¶
func (b *SearchRequestBuilder) SortDesc(field, unmappedType string) *SearchRequestBuilder
SortDesc adds a sort to the search request
type SearchResponse ¶
type SearchResponse struct { Error map[string]interface{} `json:"error"` Aggregations map[string]interface{} `json:"aggregations"` Hits *SearchResponseHits `json:"hits"` }
SearchResponse represents a search response
type SearchResponseHits ¶
SearchResponseHits represents search response hits