report

package
v1.12.2 Latest Latest
Warning

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

Go to latest
Published: Jan 6, 2026 License: Apache-2.0 Imports: 17 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://api.github.com"

ExternalServiceURL is the base HTTP URL for a github instance used to query for more recent version. If not otherwise specified, it will use the hard-coded default, api.github.com. GHRepo is the repository to use, and defaults to "open-policy-agent/opa"

Override at build time via:

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

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

View Source
var GHRepo = "open-policy-agent/opa"

Functions

This section is empty.

Types

type DataResponse

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

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 GHResponse added in v1.7.0

type GHResponse struct {
	TagName      string `json:"tag_name,omitempty"`   // latest OPA release tag
	ReleaseNotes string `json:"html_url,omitempty"`   // link to the OPA release notes
	Download     string `json:"assets_url,omitempty"` // link to download the OPA release
}

type GHVersionCollector added in v1.7.0

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

func (*GHVersionCollector) RegisterGatherer added in v1.7.0

func (*GHVersionCollector) RegisterGatherer(_ string, _ Gatherer)

func (*GHVersionCollector) SendReport added in v1.7.0

func (r *GHVersionCollector) 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

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 interface {
	SendReport(ctx context.Context) (*DataResponse, error)
	RegisterGatherer(key string, f Gatherer)
}

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

func New

func New(opts Options) (Reporter, error)

New returns an instance of the Reporter

Jump to

Keyboard shortcuts

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