Documentation
¶
Index ¶
- Constants
- func NewPluginMetricsCollector(tickDuration time.Duration) *pluginMetricsCollector
- func WithNoSync(s *KVStore)
- type Bucket
- func (b *Bucket) Cursor(opts ...kv.CursorHint) (kv.Cursor, error)
- func (b *Bucket) Delete(key []byte) error
- func (b *Bucket) ForwardCursor(seek []byte, opts ...kv.CursorOption) (kv.ForwardCursor, error)
- func (b *Bucket) Get(key []byte) ([]byte, error)
- func (b *Bucket) GetBatch(keys ...[]byte) ([][]byte, error)
- func (b *Bucket) Put(key []byte, value []byte) error
- type Client
- type Cursor
- type KVOption
- type KVStore
- func (s *KVStore) Backup(ctx context.Context, w io.Writer) error
- func (s *KVStore) Check(_ context.Context) check.Response
- func (s *KVStore) CheckName() string
- func (s *KVStore) Close() error
- func (s *KVStore) CreateBucket(ctx context.Context, name []byte) error
- func (s *KVStore) DB() *bolt.DB
- func (s *KVStore) DeleteBucket(ctx context.Context, name []byte) error
- func (s *KVStore) Flush(ctx context.Context)
- func (s *KVStore) Open(ctx context.Context) error
- func (s *KVStore) RLock()
- func (s *KVStore) RUnlock()
- func (s *KVStore) Restore(ctx context.Context, r io.Reader) error
- func (s *KVStore) StopProber()
- func (s *KVStore) Update(ctx context.Context, fn func(tx kv.Tx) error) error
- func (s *KVStore) View(ctx context.Context, fn func(tx kv.Tx) error) error
- func (s *KVStore) WithDB(db *bolt.DB)
- type Tx
Constants ¶
const ( // DefaultProbeInterval is how often the background prober probes the // bolt DB. Picked to give /health callers near-fresh results without // adding meaningful load to bolt. DefaultProbeInterval = 1 * time.Second // DefaultProbeStaleness is the default staleness budget on the // freshness wrapper. After this much time without a successful probe // update, /health reports fail with a "stale" message. Sized at 5x // DefaultProbeInterval so a single skipped tick does not flip the // status, but a wedged or dead prober goroutine becomes visible // within a small multiple of the probe interval. DefaultProbeStaleness = 5 * DefaultProbeInterval )
const DefaultFilename = "influxd.bolt"
Variables ¶
This section is empty.
Functions ¶
func NewPluginMetricsCollector ¶ added in v2.0.5
func WithNoSync ¶
func WithNoSync(s *KVStore)
WithNoSync WARNING: this is useful for tests only this skips fsyncing on every commit to improve write performance in exchange for no guarantees that the db will persist.
Types ¶
type Bucket ¶
type Bucket struct {
// contains filtered or unexported fields
}
Bucket implements kv.Bucket.
func (*Bucket) Cursor ¶
Cursor retrieves a cursor for iterating through the entries in the key value store.
func (*Bucket) ForwardCursor ¶
func (b *Bucket) ForwardCursor(seek []byte, opts ...kv.CursorOption) (kv.ForwardCursor, error)
ForwardCursor retrieves a cursor for iterating through the entries in the key value store in a given direction (ascending / descending).
type Client ¶
type Client struct {
Path string
IDGenerator platform2.IDGenerator
TokenGenerator platform.TokenGenerator
platform.TimeGenerator
// contains filtered or unexported fields
}
Client is a client for the boltDB data store.
func (*Client) Collect ¶
func (c *Client) Collect(ch chan<- prometheus.Metric)
Collect returns the current state of all metrics of the collector.
func (*Client) Describe ¶
func (c *Client) Describe(ch chan<- *prometheus.Desc)
Describe returns all descriptions of the collector.
type Cursor ¶
type Cursor struct {
// contains filtered or unexported fields
}
Cursor is a struct for iterating through the entries in the key value store.
type KVOption ¶
type KVOption func(*KVStore)
func WithCheckName ¶ added in v2.10.0
WithCheckName sets the name reported by Check and CheckName. Required for callers that register the store with a kit/check.Check registry; other callers can omit it and leave CheckName empty.
func WithProbeInterval ¶ added in v2.10.0
WithProbeInterval overrides the period of the background prober's ticker. Intended for tests that need probes to run more frequently than DefaultProbeInterval; production callers should accept the default. Callers that raise this above DefaultProbeInterval should also raise the staleness budget via WithStaleness, since the budget defaults to a small multiple of DefaultProbeInterval.
func WithStaleness ¶ added in v2.10.0
WithStaleness overrides the staleness budget used when the probe state's FreshnessResponse is constructed. Intended for tests that need to observe staleness quickly; production callers should accept the default.
type KVStore ¶
type KVStore struct {
// contains filtered or unexported fields
}
KVStore is a kv.Store backed by boltdb.
func NewKVStore ¶
NewKVStore returns an instance of KVStore with the file at the provided path.
func (*KVStore) Check ¶ added in v2.10.0
Check returns the live freshness-aware probe state. It is non-blocking: a background prober (started by Open / WithDB) periodically probes the underlying bolt database via runOneProbe, which calls Update on the wrapper. The wrapper's Status/Message derive from the cached snapshot's age vs. configured staleness at the moment they're read, so a wedged or dead prober flips /health to fail once the snapshot ages past the budget. ctx is unused; it is retained to satisfy the check.Checker interface.
func (*KVStore) CheckName ¶ added in v2.10.0
CheckName satisfies check.NamedChecker so the store can be passed to AddNamedHealthCheck without an extra wrapper. Returns the name configured by WithCheckName, or "" if unset, which registration rejects.
func (*KVStore) Close ¶
Close signals the background prober (if any) to exit and closes the underlying bolt database. Close does not wait for the prober: the prober simply stops updating the freshness wrapper, which ages out to a fail status within DefaultProbeStaleness. There is a window after Close returns where Check may still report the last probe's result; once staleness elapses, /health flips to fail.
func (*KVStore) CreateBucket ¶
CreateBucket creates a bucket in the underlying boltdb store if it does not already exist
func (*KVStore) DeleteBucket ¶
DeleteBucket creates a bucket in the underlying boltdb store if it does not already exist
func (*KVStore) StopProber ¶ added in v2.10.0
func (s *KVStore) StopProber()
StopProber signals the background prober (if any) to exit. It does not close the underlying *bolt.DB. Idempotent and safe to call concurrently. Intended for callers that own the DB lifecycle separately (e.g. constructed the store via WithDB) and need to stop the prober without closing the DB they own.
type Tx ¶
type Tx struct {
// contains filtered or unexported fields
}
Tx is a light wrapper around a boltdb transaction. It implements kv.Tx.
func (*Tx) WithContext ¶
WithContext sets the context for the transaction.