Versions in this module Expand all Collapse all v1 v1.7.9 Oct 27, 2019 Changes in this version + const DefaultLeaseDuration + const DefaultLoggingEnabled + const DefaultRetentionPolicyDuration + const DefaultRetentionPolicyName + const DefaultRetentionPolicyReplicaN + const MinRetentionPolicyDuration + const SaltBytes + const ShardGroupDeletedExpiration + var ErrAuthenticate = errors.New("authentication failed") + var ErrContinuousQueryExists = errors.New("continuous query already exists") + var ErrContinuousQueryNotFound = errors.New("continuous query not found") + var ErrDatabaseExists = errors.New("database already exists") + var ErrDatabaseNameRequired = errors.New("database name required") + var ErrDatabaseNotExists = errors.New("database does not exist") + var ErrIncompatibleDurations = errors.New("retention policy duration must be greater than the shard duration") + var ErrInvalidName = errors.New("invalid name") + var ErrReplicationFactorTooLow = errors.New("replication factor must be greater than 0") + var ErrRetentionPolicyConflict = errors.New("retention policy conflicts with an existing policy") + var ErrRetentionPolicyDefault = errors.New("retention policy is default") + var ErrRetentionPolicyDurationTooLow = fmt.Errorf("retention policy duration must be at least %s", MinRetentionPolicyDuration) + var ErrRetentionPolicyExists = errors.New("retention policy already exists") + var ErrRetentionPolicyNameExists = errors.New("retention policy name already exists") + var ErrRetentionPolicyNameRequired = errors.New("retention policy name required") + var ErrRetentionPolicyNotFound = errors.New("retention policy not found") + var ErrRetentionPolicyRequired = errors.New("retention policy required") + var ErrService = errors.New("meta service error") + var ErrServiceUnavailable = errors.New("meta service unavailable") + var ErrShardGroupExists = errors.New("shard group already exists") + var ErrShardGroupNotFound = errors.New("shard group not found") + var ErrShardNotReplicated = errors.New("shard not replicated") + var ErrStoreClosed = errors.New("raft store already closed") + var ErrStoreOpen = errors.New("store already open") + var ErrSubscriptionExists = errors.New("subscription already exists") + var ErrSubscriptionNotFound = errors.New("subscription not found") + var ErrUserExists = errors.New("user already exists") + var ErrUserNotFound = errors.New("user not found") + var ErrUsernameRequired = errors.New("username required") + func ErrInvalidSubscriptionURL(url string) error + func MarshalTime(t time.Time) int64 + func NewContextWithUser(ctx context.Context, user User) context.Context + func UnmarshalTime(v int64) time.Time + func ValidName(name string) bool + type Client struct + func NewClient(config *Config) *Client + func (c *Client) AcquireLease(name string) (*Lease, error) + func (c *Client) AdminUserExists() bool + func (c *Client) Authenticate(username, password string) (User, error) + func (c *Client) Close() error + func (c *Client) ClusterID() uint64 + func (c *Client) CreateContinuousQuery(database, name, query string) error + func (c *Client) CreateDatabase(name string) (*DatabaseInfo, error) + func (c *Client) CreateDatabaseWithRetentionPolicy(name string, spec *RetentionPolicySpec) (*DatabaseInfo, error) + func (c *Client) CreateRetentionPolicy(database string, spec *RetentionPolicySpec, makeDefault bool) (*RetentionPolicyInfo, error) + func (c *Client) CreateShardGroup(database, policy string, timestamp time.Time) (*ShardGroupInfo, error) + func (c *Client) CreateSubscription(database, rp, name, mode string, destinations []string) error + func (c *Client) CreateUser(name, password string, admin bool) (User, error) + func (c *Client) Data() Data + func (c *Client) Database(name string) *DatabaseInfo + func (c *Client) Databases() []DatabaseInfo + func (c *Client) DeleteShardGroup(database, policy string, id uint64) error + func (c *Client) DropContinuousQuery(database, name string) error + func (c *Client) DropDatabase(name string) error + func (c *Client) DropRetentionPolicy(database, name string) error + func (c *Client) DropShard(id uint64) error + func (c *Client) DropSubscription(database, rp, name string) error + func (c *Client) DropUser(name string) error + func (c *Client) Load() error + func (c *Client) MarshalBinary() ([]byte, error) + func (c *Client) Open() error + func (c *Client) PrecreateShardGroups(from, to time.Time) error + func (c *Client) PruneShardGroups() error + func (c *Client) RetentionPolicy(database, name string) (rpi *RetentionPolicyInfo, err error) + func (c *Client) SetAdminPrivilege(username string, admin bool) error + func (c *Client) SetData(data *Data) error + func (c *Client) SetPrivilege(username, database string, p influxql.Privilege) error + func (c *Client) ShardGroupsByTimeRange(database, policy string, min, max time.Time) (a []ShardGroupInfo, err error) + func (c *Client) ShardIDs() []uint64 + func (c *Client) ShardOwner(shardID uint64) (database, policy string, sgi *ShardGroupInfo) + func (c *Client) ShardsByTimeRange(sources influxql.Sources, tmin, tmax time.Time) (a []ShardInfo, err error) + func (c *Client) TruncateShardGroups(t time.Time) error + func (c *Client) UpdateRetentionPolicy(database, name string, rpu *RetentionPolicyUpdate, makeDefault bool) error + func (c *Client) UpdateUser(name, password string) error + func (c *Client) User(name string) (User, error) + func (c *Client) UserCount() int + func (c *Client) UserPrivilege(username, database string) (*influxql.Privilege, error) + func (c *Client) UserPrivileges(username string) (map[string]influxql.Privilege, error) + func (c *Client) Users() []UserInfo + func (c *Client) WaitForDataChanged() chan struct{} + func (c *Client) WithLogger(log *zap.Logger) + type Config struct + Dir string + LoggingEnabled bool + RetentionAutoCreate bool + func NewConfig() *Config + func (c *Config) Diagnostics() (*diagnostics.Diagnostics, error) + func (c *Config) Validate() error + type ContinuousQueryInfo struct + Name string + Query string + type Data struct + ClusterID uint64 + Databases []DatabaseInfo + Index uint64 + MaxShardGroupID uint64 + MaxShardID uint64 + Term uint64 + Users []UserInfo + func (data *Data) Clone() *Data + func (data *Data) CloneDatabases() []DatabaseInfo + func (data *Data) CloneUsers() []UserInfo + func (data *Data) CreateContinuousQuery(database, name, query string) error + func (data *Data) CreateDatabase(name string) error + func (data *Data) CreateRetentionPolicy(database string, rpi *RetentionPolicyInfo, makeDefault bool) error + func (data *Data) CreateShardGroup(database, policy string, timestamp time.Time) error + func (data *Data) CreateSubscription(database, rp, name, mode string, destinations []string) error + func (data *Data) CreateUser(name, hash string, admin bool) error + func (data *Data) Database(name string) *DatabaseInfo + func (data *Data) DeleteShardGroup(database, policy string, id uint64) error + func (data *Data) DropContinuousQuery(database, name string) error + func (data *Data) DropDatabase(name string) error + func (data *Data) DropRetentionPolicy(database, name string) error + func (data *Data) DropShard(id uint64) + func (data *Data) DropSubscription(database, rp, name string) error + func (data *Data) DropUser(name string) error + func (data *Data) ImportData(other Data, backupDBName, restoreDBName, backupRPName, restoreRPName string) (map[uint64]uint64, []string, error) + func (data *Data) MarshalBinary() ([]byte, error) + func (data *Data) RetentionPolicy(database, name string) (*RetentionPolicyInfo, error) + func (data *Data) SetAdminPrivilege(name string, admin bool) error + func (data *Data) SetPrivilege(name, database string, p influxql.Privilege) error + func (data *Data) ShardGroupByTimestamp(database, policy string, timestamp time.Time) (*ShardGroupInfo, error) + func (data *Data) ShardGroups(database, policy string) ([]ShardGroupInfo, error) + func (data *Data) ShardGroupsByTimeRange(database, policy string, tmin, tmax time.Time) ([]ShardGroupInfo, error) + func (data *Data) TruncateShardGroups(t time.Time) + func (data *Data) UnmarshalBinary(buf []byte) error + func (data *Data) UpdateRetentionPolicy(database, name string, rpu *RetentionPolicyUpdate, makeDefault bool) error + func (data *Data) UpdateUser(name, hash string) error + func (data *Data) User(username string) User + func (data *Data) UserPrivilege(name, database string) (*influxql.Privilege, error) + func (data *Data) UserPrivileges(name string) (map[string]influxql.Privilege, error) + func (data Data) AdminUserExists() bool + type DatabaseInfo struct + ContinuousQueries []ContinuousQueryInfo + DefaultRetentionPolicy string + Name string + RetentionPolicies []RetentionPolicyInfo + func (di DatabaseInfo) RetentionPolicy(name string) *RetentionPolicyInfo + func (di DatabaseInfo) ShardInfos() []ShardInfo + type ErrAuthorize struct + Database string + Message string + Query *influxql.Query + User string + func (e ErrAuthorize) Error() string + type Lease struct + Expiration time.Time + Name string + Owner uint64 + type Leases struct + func NewLeases(d time.Duration) *Leases + func (leases *Leases) Acquire(name string, nodeID uint64) (*Lease, error) + type NodeInfo struct + Host string + ID uint64 + TCPHost string + type NodeInfos []NodeInfo + func (n NodeInfos) Len() int + func (n NodeInfos) Less(i, j int) bool + func (n NodeInfos) Swap(i, j int) + type QueryAuthorizer struct + Client *Client + func NewQueryAuthorizer(c *Client) *QueryAuthorizer + func (a *QueryAuthorizer) AuthorizeDatabase(u User, priv influxql.Privilege, database string) error + func (a *QueryAuthorizer) AuthorizeQuery(u User, query *influxql.Query, database string) error + type RetentionPolicyInfo struct + Duration time.Duration + Name string + ReplicaN int + ShardGroupDuration time.Duration + ShardGroups []ShardGroupInfo + Subscriptions []SubscriptionInfo + func DefaultRetentionPolicyInfo() *RetentionPolicyInfo + func NewRetentionPolicyInfo(name string) *RetentionPolicyInfo + func (rpi *RetentionPolicyInfo) Apply(spec *RetentionPolicySpec) *RetentionPolicyInfo + func (rpi *RetentionPolicyInfo) DeletedShardGroups() []*ShardGroupInfo + func (rpi *RetentionPolicyInfo) ExpiredShardGroups(t time.Time) []*ShardGroupInfo + func (rpi *RetentionPolicyInfo) MarshalBinary() ([]byte, error) + func (rpi *RetentionPolicyInfo) ShardGroupByTimestamp(timestamp time.Time) *ShardGroupInfo + func (rpi *RetentionPolicyInfo) UnmarshalBinary(data []byte) error + type RetentionPolicySpec struct + Duration *time.Duration + Name string + ReplicaN *int + ShardGroupDuration time.Duration + func (s *RetentionPolicySpec) MarshalBinary() ([]byte, error) + func (s *RetentionPolicySpec) Matches(rpi *RetentionPolicyInfo) bool + func (s *RetentionPolicySpec) NewRetentionPolicyInfo() *RetentionPolicyInfo + func (s *RetentionPolicySpec) UnmarshalBinary(data []byte) error + type RetentionPolicyUpdate struct + Duration *time.Duration + Name *string + ReplicaN *int + ShardGroupDuration *time.Duration + func (rpu *RetentionPolicyUpdate) SetDuration(v time.Duration) + func (rpu *RetentionPolicyUpdate) SetName(v string) + func (rpu *RetentionPolicyUpdate) SetReplicaN(v int) + func (rpu *RetentionPolicyUpdate) SetShardGroupDuration(v time.Duration) + type ShardGroupInfo struct + DeletedAt time.Time + EndTime time.Time + ID uint64 + Shards []ShardInfo + StartTime time.Time + TruncatedAt time.Time + func (sgi *ShardGroupInfo) Contains(t time.Time) bool + func (sgi *ShardGroupInfo) Deleted() bool + func (sgi *ShardGroupInfo) Overlaps(min, max time.Time) bool + func (sgi *ShardGroupInfo) ShardFor(hash uint64) ShardInfo + func (sgi *ShardGroupInfo) Truncated() bool + type ShardGroupInfos []ShardGroupInfo + func (a ShardGroupInfos) Len() int + func (a ShardGroupInfos) Less(i, j int) bool + func (a ShardGroupInfos) Swap(i, j int) + type ShardInfo struct + ID uint64 + Owners []ShardOwner + func (si *ShardInfo) UnmarshalBinary(buf []byte) error + func (si ShardInfo) OwnedBy(nodeID uint64) bool + type ShardOwner struct + NodeID uint64 + type SubscriptionInfo struct + Destinations []string + Mode string + Name string + type User interface + AuthorizeUnrestricted func() bool + ID func() string + func UserFromContext(ctx context.Context) User + type UserInfo struct + Admin bool + Hash string + Name string + Privileges map[string]influxql.Privilege + func (u *UserInfo) AuthorizeQuery(database string, query *influxql.Query) error + func (u *UserInfo) AuthorizeSeriesRead(database string, measurement []byte, tags models.Tags) bool + func (u *UserInfo) AuthorizeSeriesWrite(database string, measurement []byte, tags models.Tags) bool + func (u *UserInfo) AuthorizeUnrestricted() bool + func (u *UserInfo) ID() string + func (ui *UserInfo) AuthorizeDatabase(privilege influxql.Privilege, database string) bool + type WriteAuthorizer struct + Client *Client + func NewWriteAuthorizer(c *Client) *WriteAuthorizer + func (a WriteAuthorizer) AuthorizeWrite(username, database string) error