Documentation ¶
Index ¶
- Constants
- Variables
- type CPUMeasurement
- type CPUOnlySimulator
- type CPUOnlySimulatorConfig
- type DevopsSimulator
- type DevopsSimulatorConfig
- type DiskIOMeasurement
- type DiskMeasurement
- type Host
- type KernelMeasurement
- type MemMeasurement
- type NetMeasurement
- type NginxMeasurement
- type PostgresqlMeasurement
- type RandMeasurement
- type RedisMeasurement
Constants ¶
const ( MachineRackChoicesPerDatacenter = 100 MachineServiceChoices = 20 MachineServiceVersionChoices = 2 )
Count of choices for auto-generated tag values:
const (
OneTerabyte = 1 << 40
)
Variables ¶
var ( TotalByteString = []byte("total") FreeByteString = []byte("free") UsedByteString = []byte("used") UsedPercentByteString = []byte("used_percent") INodesTotalByteString = []byte("inodes_total") INodesFreeByteString = []byte("inodes_free") INodesUsedByteString = []byte("inodes_used") DiskTags = [][]byte{ []byte("path"), []byte("fstype"), } DiskFSTypeChoices = [][]byte{ []byte("ext3"), []byte("ext4"), []byte("btrfs"), } )
var ( SerialByteString = []byte("serial") DiskIOFields = []labeledDistributionMaker{ {[]byte("reads"), func() common.Distribution { return common.MWD(opsND, 0) }}, {[]byte("writes"), func() common.Distribution { return common.MWD(opsND, 0) }}, {[]byte("read_bytes"), func() common.Distribution { return common.MWD(bytesND, 0) }}, {[]byte("write_bytes"), func() common.Distribution { return common.MWD(bytesND, 0) }}, {[]byte("read_time"), func() common.Distribution { return common.MWD(timeND, 0) }}, {[]byte("write_time"), func() common.Distribution { return common.MWD(timeND, 0) }}, {[]byte("io_time"), func() common.Distribution { return common.MWD(timeND, 0) }}, } )
var ( MachineTeamChoices = [][]byte{ []byte("SF"), []byte("NYC"), []byte("LON"), []byte("CHI"), } MachineOSChoices = [][]byte{ []byte("Ubuntu16.10"), []byte("Ubuntu16.04LTS"), []byte("Ubuntu15.10"), } MachineArchChoices = [][]byte{ []byte("x64"), []byte("x86"), } MachineServiceEnvironmentChoices = [][]byte{ []byte("production"), []byte("staging"), []byte("test"), } // MachineTagKeys fields common to all hosts: MachineTagKeys = [][]byte{ []byte("hostname"), []byte("region"), []byte("datacenter"), []byte("rack"), []byte("os"), []byte("arch"), []byte("team"), []byte("service"), []byte("service_version"), []byte("service_environment"), } )
var ( BootTimeByteString = []byte("boot_time") KernelFields = []labeledDistributionMaker{ {[]byte("interrupts"), func() common.Distribution { return common.MWD(kernelND, 0) }}, {[]byte("context_switches"), func() common.Distribution { return common.MWD(kernelND, 0) }}, {[]byte("processes_forked"), func() common.Distribution { return common.MWD(kernelND, 0) }}, {[]byte("disk_pages_in"), func() common.Distribution { return common.MWD(kernelND, 0) }}, {[]byte("disk_pages_out"), func() common.Distribution { return common.MWD(kernelND, 0) }}, } )
var ( // Choices for modeling a host's memory capacity. MemoryMaxBytesChoices = []int64{8 << 30, 12 << 30, 16 << 30} // Field keys for 'mem' points. MemoryFieldKeys = [][]byte{ []byte("total"), []byte("available"), []byte("used"), []byte("free"), []byte("cached"), []byte("buffered"), []byte("used_percent"), []byte("available_percent"), []byte("buffered_percent"), } )
var ( CPUFields = []labeledDistributionMaker{ {[]byte("usage_user"), func() common.Distribution { return common.CWD(cpuND, 0.0, 100.0, rand.Float64()*100.0) }}, {[]byte("usage_system"), func() common.Distribution { return common.CWD(cpuND, 0.0, 100.0, rand.Float64()*100.0) }}, {[]byte("usage_idle"), func() common.Distribution { return common.CWD(cpuND, 0.0, 100.0, rand.Float64()*100.0) }}, {[]byte("usage_nice"), func() common.Distribution { return common.CWD(cpuND, 0.0, 100.0, rand.Float64()*100.0) }}, {[]byte("usage_iowait"), func() common.Distribution { return common.CWD(cpuND, 0.0, 100.0, rand.Float64()*100.0) }}, {[]byte("usage_irq"), func() common.Distribution { return common.CWD(cpuND, 0.0, 100.0, rand.Float64()*100.0) }}, {[]byte("usage_softirq"), func() common.Distribution { return common.CWD(cpuND, 0.0, 100.0, rand.Float64()*100.0) }}, {[]byte("usage_steal"), func() common.Distribution { return common.CWD(cpuND, 0.0, 100.0, rand.Float64()*100.0) }}, {[]byte("usage_guest"), func() common.Distribution { return common.CWD(cpuND, 0.0, 100.0, rand.Float64()*100.0) }}, {[]byte("usage_guest_nice"), func() common.Distribution { return common.CWD(cpuND, 0.0, 100.0, rand.Float64()*100.0) }}, } )
var ( NetFields = []labeledDistributionMaker{ {[]byte("bytes_sent"), func() common.Distribution { return common.MWD(highND, 0) }}, {[]byte("bytes_recv"), func() common.Distribution { return common.MWD(highND, 0) }}, {[]byte("packets_sent"), func() common.Distribution { return common.MWD(highND, 0) }}, {[]byte("packets_recv"), func() common.Distribution { return common.MWD(highND, 0) }}, {[]byte("err_in"), func() common.Distribution { return common.MWD(lowND, 0) }}, {[]byte("err_out"), func() common.Distribution { return common.MWD(lowND, 0) }}, {[]byte("drop_in"), func() common.Distribution { return common.MWD(lowND, 0) }}, {[]byte("drop_out"), func() common.Distribution { return common.MWD(lowND, 0) }}, } )
var ( NginxFields = []labeledDistributionMaker{ {[]byte("accepts"), func() common.Distribution { return common.MWD(nginxND, 0) }}, {[]byte("active"), func() common.Distribution { return common.CWD(nginxND, 0, 100, 0) }}, {[]byte("handled"), func() common.Distribution { return common.MWD(nginxND, 0) }}, {[]byte("reading"), func() common.Distribution { return common.CWD(nginxND, 0, 100, 0) }}, {[]byte("requests"), func() common.Distribution { return common.MWD(nginxND, 0) }}, {[]byte("waiting"), func() common.Distribution { return common.CWD(nginxND, 0, 100, 0) }}, {[]byte("writing"), func() common.Distribution { return common.CWD(nginxND, 0, 100, 0) }}, } )
var ( PostgresqlFields = []labeledDistributionMaker{ {[]byte("numbackends"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("xact_commit"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("xact_rollback"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("blks_read"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("blks_hit"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("tup_returned"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("tup_fetched"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("tup_inserted"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("tup_updated"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("tup_deleted"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("conflicts"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("temp_files"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("temp_bytes"), func() common.Distribution { return common.CWD(pgHighND, 0, 1024*1024*1024, 0) }}, {[]byte("deadlocks"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("blk_read_time"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, {[]byte("blk_write_time"), func() common.Distribution { return common.CWD(pgND, 0, 1000, 0) }}, } )
var ( RandFields = []labeledDistributionMaker{ {[]byte("usage_user"), func() common.Distribution { return common.UD(0.0, 100.0) }}, {[]byte("usage_system"), func() common.Distribution { return common.UD(0.0, 100.0) }}, {[]byte("usage_idle"), func() common.Distribution { return common.UD(0.0, 100.0) }}, {[]byte("usage_nice"), func() common.Distribution { return common.UD(0.0, 100.0) }}, {[]byte("usage_iowait"), func() common.Distribution { return common.UD(0.0, 100.0) }}, {[]byte("usage_irq"), func() common.Distribution { return common.UD(0.0, 100.0) }}, {[]byte("usage_softirq"), func() common.Distribution { return common.UD(0.0, 100.0) }}, {[]byte("usage_steal"), func() common.Distribution { return common.UD(0.0, 100.0) }}, {[]byte("usage_guest"), func() common.Distribution { return common.UD(0.0, 100.0) }}, {[]byte("usage_guest_nice"), func() common.Distribution { return common.UD(0.0, 100.0) }}, } )
var ( RedisFields = []labeledDistributionMaker{ {[]byte("total_connections_received"), func() common.Distribution { return common.MWD(redisLowND, 0) }}, {[]byte("expired_keys"), func() common.Distribution { return common.MWD(redisHighND, 0) }}, {[]byte("evicted_keys"), func() common.Distribution { return common.MWD(redisHighND, 0) }}, {[]byte("keyspace_hits"), func() common.Distribution { return common.MWD(redisHighND, 0) }}, {[]byte("keyspace_misses"), func() common.Distribution { return common.MWD(redisHighND, 0) }}, {[]byte("instantaneous_ops_per_sec"), func() common.Distribution { return common.WD(common.ND(1, 1), 0) }}, {[]byte("instantaneous_input_kbps"), func() common.Distribution { return common.WD(common.ND(1, 1), 0) }}, {[]byte("instantaneous_output_kbps"), func() common.Distribution { return common.WD(common.ND(1, 1), 0) }}, {[]byte("connected_clients"), func() common.Distribution { return common.CWD(redisHighND, 0, 10000, 0) }}, {[]byte("used_memory"), func() common.Distribution { return common.CWD(redisHighND, 0, sixteenGB, sixteenGB/2) }}, {[]byte("used_memory_rss"), func() common.Distribution { return common.CWD(redisHighND, 0, sixteenGB, sixteenGB/2) }}, {[]byte("used_memory_peak"), func() common.Distribution { return common.CWD(redisHighND, 0, sixteenGB, sixteenGB/2) }}, {[]byte("used_memory_lua"), func() common.Distribution { return common.CWD(redisHighND, 0, sixteenGB, sixteenGB/2) }}, {[]byte("rdb_changes_since_last_save"), func() common.Distribution { return common.CWD(redisHighND, 0, 10000, 0) }}, {[]byte("sync_full"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("sync_partial_ok"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("sync_partial_err"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("pubsub_channels"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("pubsub_patterns"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("latest_fork_usec"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("connected_slaves"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("master_repl_offset"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("repl_backlog_active"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("repl_backlog_size"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("repl_backlog_histlen"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("mem_fragmentation_ratio"), func() common.Distribution { return common.CWD(redisLowND, 0, 100, 0) }}, {[]byte("used_cpu_sys"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("used_cpu_user"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("used_cpu_sys_children"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, {[]byte("used_cpu_user_children"), func() common.Distribution { return common.CWD(redisLowND, 0, 1000, 0) }}, } )
Functions ¶
This section is empty.
Types ¶
type CPUMeasurement ¶
type CPUMeasurement struct {
// contains filtered or unexported fields
}
func NewCPUMeasurement ¶
func NewCPUMeasurement(start time.Time) *CPUMeasurement
func (*CPUMeasurement) ToPoint ¶
func (m *CPUMeasurement) ToPoint(p *serialize.Point)
type CPUOnlySimulator ¶
type CPUOnlySimulator struct {
// contains filtered or unexported fields
}
A CPUOnlySimulator generates data similar to telemetry from Telegraf for only CPU metrics. It fulfills the Simulator interface.
func (*CPUOnlySimulator) Fields ¶
func (d *CPUOnlySimulator) Fields() map[string][][]byte
Fields returns a map of subsystems to metrics collected
type CPUOnlySimulatorConfig ¶
type CPUOnlySimulatorConfig struct { Start time.Time End time.Time // InitHostCount is the number of hosts to start with in the first reporting period InitHostCount uint64 // HostCount is the total number of hosts to have in the last reporting period HostCount uint64 HostConstructor func(i int, start time.Time) Host }
CPUOnlySimulatorConfig is used to create a CPUOnlySimulator.
func (*CPUOnlySimulatorConfig) ToSimulator ¶
func (d *CPUOnlySimulatorConfig) ToSimulator(interval time.Duration) common.Simulator
ToSimulator produces a Simulator that conforms to the given SimulatorConfig over the specified interval
type DevopsSimulator ¶
type DevopsSimulator struct {
// contains filtered or unexported fields
}
DevopsSimulator generates data similar to telemetry, with metrics from a variety of device systems. It fulfills the Simulator interface.
type DevopsSimulatorConfig ¶
type DevopsSimulatorConfig struct { Start time.Time End time.Time InitHostCount uint64 HostCount uint64 HostConstructor func(i int, start time.Time) Host }
DevopsSimulatorConfig is used to create a DevopsSimulator.
func (*DevopsSimulatorConfig) ToSimulator ¶
func (d *DevopsSimulatorConfig) ToSimulator(interval time.Duration) common.Simulator
ToSimulator produces a Simulator that conforms to the given SimulatorConfig over the specified interval
type DiskIOMeasurement ¶
type DiskIOMeasurement struct {
// contains filtered or unexported fields
}
func NewDiskIOMeasurement ¶
func NewDiskIOMeasurement(start time.Time) *DiskIOMeasurement
func (*DiskIOMeasurement) ToPoint ¶
func (m *DiskIOMeasurement) ToPoint(p *serialize.Point)
type DiskMeasurement ¶
type DiskMeasurement struct {
// contains filtered or unexported fields
}
func NewDiskMeasurement ¶
func NewDiskMeasurement(start time.Time) *DiskMeasurement
func (*DiskMeasurement) ToPoint ¶
func (m *DiskMeasurement) ToPoint(p *serialize.Point)
type Host ¶
type Host struct { SimulatedMeasurements []common.SimulatedMeasurement // These are all assigned once, at Host creation: Name, Region, Datacenter, Rack, OS, Arch []byte Team, Service, ServiceVersion, ServiceEnvironment []byte }
Host models a machine being monitored for dev ops
func NewHostCPUOnly ¶
NewHostCPUOnly creates a new host in a simulated cpu-only use case, which is a subset of a devops case with only CPU metrics simulated
func NewHostCPUSingle ¶
NewHostCPUSingle creates a new host in a simulated cpu-single use case, which is a subset of a devops case with only a single CPU metric is simulated
type KernelMeasurement ¶
type KernelMeasurement struct {
// contains filtered or unexported fields
}
func NewKernelMeasurement ¶
func NewKernelMeasurement(start time.Time) *KernelMeasurement
func (*KernelMeasurement) ToPoint ¶
func (m *KernelMeasurement) ToPoint(p *serialize.Point)
type MemMeasurement ¶
type MemMeasurement struct {
// contains filtered or unexported fields
}
func NewMemMeasurement ¶
func NewMemMeasurement(start time.Time) *MemMeasurement
func (*MemMeasurement) ToPoint ¶
func (m *MemMeasurement) ToPoint(p *serialize.Point)
type NetMeasurement ¶
type NetMeasurement struct {
// contains filtered or unexported fields
}
func NewNetMeasurement ¶
func NewNetMeasurement(start time.Time) *NetMeasurement
func (*NetMeasurement) ToPoint ¶
func (m *NetMeasurement) ToPoint(p *serialize.Point)
type NginxMeasurement ¶
type NginxMeasurement struct {
// contains filtered or unexported fields
}
func NewNginxMeasurement ¶
func NewNginxMeasurement(start time.Time) *NginxMeasurement
func (*NginxMeasurement) ToPoint ¶
func (m *NginxMeasurement) ToPoint(p *serialize.Point)
type PostgresqlMeasurement ¶
type PostgresqlMeasurement struct {
// contains filtered or unexported fields
}
func NewPostgresqlMeasurement ¶
func NewPostgresqlMeasurement(start time.Time) *PostgresqlMeasurement
func (*PostgresqlMeasurement) ToPoint ¶
func (m *PostgresqlMeasurement) ToPoint(p *serialize.Point)
type RandMeasurement ¶
type RandMeasurement struct {
// contains filtered or unexported fields
}
func NewRandMeasurement ¶
func NewRandMeasurement(start time.Time) *RandMeasurement
func (*RandMeasurement) ToPoint ¶
func (m *RandMeasurement) ToPoint(p *serialize.Point)
type RedisMeasurement ¶
type RedisMeasurement struct {
// contains filtered or unexported fields
}
func NewRedisMeasurement ¶
func NewRedisMeasurement(start time.Time) *RedisMeasurement
func (*RedisMeasurement) Tick ¶
func (m *RedisMeasurement) Tick(d time.Duration)
func (*RedisMeasurement) ToPoint ¶
func (m *RedisMeasurement) ToPoint(p *serialize.Point)