report

package
v0.63.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 28, 2024 License: Apache-2.0 Imports: 15 Imported by: 0

Documentation

Overview

Package report provides functions to report OPA's version information to an external service and process the response.

Index

Constants

This section is empty.

Variables

View Source
var ExternalServiceURL = "https://telemetry.openpolicyagent.org"

ExternalServiceURL is the base HTTP URL for a telemetry service. If not otherwise specified it will use the hard coded default.

Override at build time via:

-ldflags "-X github.com/open-policy-agent/opa/internal/report.ExternalServiceURL=<url>"

This will be overridden if the OPA_TELEMETRY_SERVICE_URL environment variable is provided.

Functions

This section is empty.

Types

type DataResponse

type DataResponse struct {
	Latest ReleaseDetails `json:"latest,omitempty"`
}

DataResponse represents the data returned by the external service

func (*DataResponse) IsSet

func (dr *DataResponse) IsSet() bool

IsSet returns true if dr is populated.

func (*DataResponse) Pretty

func (dr *DataResponse) Pretty() string

Pretty returns OPA release information in a human-readable format.

func (*DataResponse) Slice

func (dr *DataResponse) Slice() [][2]string

Slice returns the dr as a slice of key-value string pairs. If dr is nil, this function returns an empty slice.

type Gatherer added in v0.60.0

type Gatherer func(ctx context.Context) (any, error)

Gatherer represents a mechanism to inject additional data in the telemetry report

type Options added in v0.34.1

type Options struct {
	Logger logging.Logger
}

Options supplies parameters to the reporter.

type ReleaseDetails

type ReleaseDetails struct {
	Download      string `json:"download,omitempty"`       // link to download the OPA release
	ReleaseNotes  string `json:"release_notes,omitempty"`  // link to the OPA release notes
	LatestRelease string `json:"latest_release,omitempty"` // latest OPA released version
	OPAUpToDate   bool   `json:"opa_up_to_date,omitempty"` // is running OPA version greater than or equal to the latest released
}

ReleaseDetails holds information about the latest OPA release

type Reporter

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

Reporter reports information such as the version, heap usage about the running OPA instance to an external service

func New

func New(id string, opts Options) (*Reporter, error)

New returns an instance of the Reporter

func (*Reporter) RegisterGatherer added in v0.60.0

func (r *Reporter) RegisterGatherer(key string, f Gatherer)

func (*Reporter) SendReport

func (r *Reporter) SendReport(ctx context.Context) (*DataResponse, error)

SendReport sends the telemetry report which includes information such as the OPA version, current memory usage to the external service

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL