halib

package
v0.0.0-...-24d954f Latest Latest
Warning

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

Go to latest
Published: May 18, 2020 License: Apache-2.0 Imports: 4 Imported by: 3

Documentation

Index

Constants

View Source
const CommandKillAfterSeconds = 3

CommandKillAfterSeconds when command excess timeout, kill after COMMAND_KILLAFTER sec

View Source
const DefaultAPIEndpoint = "http://YOUR_MANAGEMENT_SERVER_HERE"

DefaultAPIEndpoint is default API endpoint of happo backend

View Source
const DefaultAgentPort = 6777

DefaultAgentPort is default listen port of happo-agent

View Source
const DefaultAutoScalingConfigPath = "./autoscaling.yaml"

DefaultAutoScalingConfigPath is default autoscaling config path

View Source
const DefaultAutoScalingJoinWaitSeconds = 60

DefaultAutoScalingJoinWaitSeconds is seconds of until join request to bastion endpoint

View Source
const DefaultCommandTimeout = 10

DefaultCommandTimeout command execution timeout(monitor, metric)

View Source
const DefaultErrorLogIntervalSeconds = -1

DefaultErrorLogIntervalSeconds when monitor error(not MonitorOK), and ErrorLogIntervalSeconds past from previous error, save sate snapshot. when >0, disable error log collection

View Source
const DefaultMetricsConfigPath = "./metrics.yaml"

DefaultMetricsConfigPath is default metric collection config path

View Source
const DefaultNagiosPluginPaths = "/usr/local/hb-agent/bin,/usr/lib64/nagios/plugins,/usr/lib/nagios/plugins,/usr/local/nagios/libexec,/usr/local/bin"

DefaultNagiosPluginPaths is nagios plugin paths. many paths with comma

View Source
const DefaultRefreshAutoScalingIntervalSeconds = 60

DefaultRefreshAutoScalingIntervalSeconds when proxy monitor return not http.StatusOK), and refreshAutoScalingIntervalSeconds past from previous error, refresh AutoScaling instances.

View Source
const DefaultSensuPluginPaths = "/usr/local/hb-agent/bin,/usr/local/bin"

DefaultSensuPluginPaths is sensu plugin paths. many paths with comma

View Source
const DefaultServerHTTPTimeout = 60

DefaultServerHTTPTimeout happo-agent http.Server ReadTimeout,WriteTimeout seconds

View Source
const DefaultServerMaxConnections = 1000

DefaultServerMaxConnections default happo-agent http.Server max connections

View Source
const DefaultTLSPrivateKey = "./happo-agent.key"

DefaultTLSPrivateKey default TLS private key file path

View Source
const DefaultTLSPublicKey = "./happo-agent.pub"

DefaultTLSPublicKey default TLS public key file path

View Source
const MonitorError = 2

MonitorError is exit code ERROR(CRITICAL) (see also nagios plugin specification)

View Source
const MonitorOK = 0

MonitorOK is exit code OK (see also nagios plugin specification)

View Source
const MonitorUnknown = 3

MonitorUnknown is exit code UNKNOWN (see also nagios plugin specification)

View Source
const MonitorWarning = 1

MonitorWarning is exit code WARNING (see also nagios plugin specification)

Variables

This section is empty.

Functions

func GetProxyJSON

func GetProxyJSON(proxyHosts []string, host string, port int, requestType string, proxyJSONStr []byte) ([]byte, string, int, error)

GetProxyJSON returns Marshal-ed ProxyRequest in []byte

Types

type AutoScalingConfig

type AutoScalingConfig struct {
	AutoScalings []AutoScalingConfigData `yaml:"autoscalings" json:"autoscalings"`
}

AutoScalingConfig is struct of autoscaling config yaml file

type AutoScalingConfigData

type AutoScalingConfigData struct {
	AutoScalingGroupName string `yaml:"autoscaling_group_name" json:"autoscaling_group_name"`
	AutoScalingCount     int    `yaml:"autoscaling_count" json:"autoscaling_count"`
	HostPrefix           string `yaml:"host_prefix" json:"host_prefix"`
}

AutoScalingConfigData is actual autoscaling config data

type AutoScalingConfigUpdateRequest

type AutoScalingConfigUpdateRequest struct {
	APIKey string            `json:"apikey"`
	Config AutoScalingConfig `json:"config"`
}

AutoScalingConfigUpdateRequest is /autoscaling/config/update API

type AutoScalingConfigUpdateResponse

type AutoScalingConfigUpdateResponse struct {
	Status  string `json:"status"`
	Message string `json:"message"`
}

AutoScalingConfigUpdateResponse is /autoscaling/config/update API

type AutoScalingData

type AutoScalingData struct {
	AutoScalingGroupName string `json:"autoscaling_group_name"`
	Instances            []struct {
		Alias        string       `json:"alias"`
		InstanceData InstanceData `json:"instance_data"`
	} `json:"instances"`
}

AutoScalingData name and actual instance data

type AutoScalingDeleteRequest

type AutoScalingDeleteRequest struct {
	APIKey               string `json:"apikey"`
	AutoScalingGroupName string `json:"autoscaling_group_name"`
}

AutoScalingDeleteRequest is /autoscaling/delete API

type AutoScalingDeleteResponse

type AutoScalingDeleteResponse struct {
	Status  string `json:"status"`
	Message string `json:"message"`
}

AutoScalingDeleteResponse is /autoscaling/delete API

type AutoScalingHealthResponse

type AutoScalingHealthResponse struct {
	Status  string `json:"status"`
	Message string `json:"message"`
	IP      string `json:"ip"`
}

AutoScalingHealthResponse is /autoscaling/health/:alias API

type AutoScalingInstanceDeregisterRequest

type AutoScalingInstanceDeregisterRequest struct {
	APIKey     string `json:"apikey"`
	InstanceID string `json:"instance_id"`
}

AutoScalingInstanceDeregisterRequest is /autoscaling/instance/delete API

type AutoScalingInstanceDeregisterResponse

type AutoScalingInstanceDeregisterResponse struct {
	Status  string `json:"status"`
	Message string `json:"message"`
}

AutoScalingInstanceDeregisterResponse is /autoscaling/instance/delete API

type AutoScalingInstanceRegisterRequest

type AutoScalingInstanceRegisterRequest struct {
	APIKey               string `json:"apikey"`
	InstanceID           string `json:"instance_id"`
	IP                   string `json:"ip"`
	AutoScalingGroupName string `json:"autoscaling_group_name"`
}

AutoScalingInstanceRegisterRequest is /autoscaling/instance/register API

type AutoScalingInstanceRegisterResponse

type AutoScalingInstanceRegisterResponse struct {
	Status       string       `json:"status"`
	Message      string       `json:"message"`
	Alias        string       `json:"alias"`
	InstanceData InstanceData `json:"instance_data"`
}

AutoScalingInstanceRegisterResponse is /autoscaling/instance/register API

type AutoScalingLeaveRequest

type AutoScalingLeaveRequest struct {
	APIKey string `json:"apikey"`
}

AutoScalingLeaveRequest is /autoscaling/leave API

type AutoScalingLeaveResponse

type AutoScalingLeaveResponse struct {
	Status  string `json:"status"`
	Message string `json:"message"`
}

AutoScalingLeaveResponse is /autoscaling/leave API

type AutoScalingNodeConfigParameters

type AutoScalingNodeConfigParameters struct {
	BastionEndpoint string
	JoinWaitSeconds int
}

AutoScalingNodeConfigParameters is struct of parameters for autoscaling node

type AutoScalingRefreshRequest

type AutoScalingRefreshRequest struct {
	APIKey               string `json:"apikey"`
	AutoScalingGroupName string `json:"autoscaling_group_name"`
}

AutoScalingRefreshRequest is /autoscaling/refresh API

type AutoScalingRefreshResponse

type AutoScalingRefreshResponse struct {
	Status  string `json:"status"`
	Message string `json:"message"`
}

AutoScalingRefreshResponse is /autoscaling/refresh API

type AutoScalingResolveResponse

type AutoScalingResolveResponse struct {
	Status string `jspn:"status"`
	IP     string `json:"ip"`
}

AutoScalingResolveResponse is /autoscaling/resolve/:alias API

type AutoScalingResponse

type AutoScalingResponse struct {
	AutoScaling []AutoScalingData `json:"autoscaling"`
}

AutoScalingResponse is /autoscaling API

type AutoScalingStatus

type AutoScalingStatus struct {
	AutoScalingGroupName string `json:"autoscaling_group_name"`
	Status               string `json:"status"`
	Message              string `json:"message"`
}

AutoScalingStatus represents the status of autoscaling group

type CrawlConfigAgent

type CrawlConfigAgent struct {
	GroupName   string                `yaml:"group_name" json:"group_name"`
	IP          string                `yaml:"ip" json:"ip"`
	Hostname    string                `yaml:"hostname" json:"hostname"`
	Port        int                   `yaml:"port" json:"port"`
	AutoScaling AutoScalingConfigData `yaml:"autoscaling,omitempty" json:"autoscaling,omitempty"`
	Proxies     []string              `yaml:"proxies" json:"proxies"`
	Disabled    bool                  `yaml:"disabled,omitempty" json:"disabled,omitempty"`
}

CrawlConfigAgent is struct of actual crawl operation

type InstanceData

type InstanceData struct {
	IP           string       `json:"ip"`
	InstanceID   string       `json:"instance_id"`
	MetricConfig MetricConfig `json:"metric_config"`
}

InstanceData is actual instance

type InventoryData

type InventoryData struct {
	GroupName     string `json:"group_name"`
	IP            string `json:"ip"`
	Command       string `json:"command"`
	CommandOption string `json:"command_option"`
	ReturnCode    int    `json:"return_code"`
	ReturnValue   string `json:"return_value"`
	Created       string `json:"created"`
}

InventoryData is actual inventory

type InventoryRequest

type InventoryRequest struct {
	APIKey        string `json:"apikey"`
	Command       string `json:"command"`
	CommandOption string `json:"command_option"`
}

InventoryRequest is /inventory API

type InventoryResponse

type InventoryResponse struct {
	ReturnCode  int    `json:"return_code"`
	ReturnValue string `json:"return_value"`
}

InventoryResponse is /inventory API

type ManageRequest

type ManageRequest struct {
	APIKey   string           `json:"apikey"`
	Hostdata CrawlConfigAgent `json:"hostdata"`
}

ManageRequest is Manage API

type ManageResponse

type ManageResponse struct {
	Status  string `json:"status"`
	Message string `json:"message"`
}

ManageResponse is Manage API

type MetricAppendRequest

type MetricAppendRequest struct {
	APIKey     string        `json:"apikey"`
	MetricData []MetricsData `json:"metric_data"`
}

MetricAppendRequest is /metric/append API

type MetricAppendResponse

type MetricAppendResponse struct {
	Status  string `json:"status"`
	Message string `json:"message"`
}

MetricAppendResponse is /metric/append API

type MetricConfig

type MetricConfig struct {
	Metrics []struct {
		Hostname string `yaml:"hostname" json:"Hostname"`
		Plugins  []struct {
			PluginName   string `yaml:"plugin_name" json:"Plugin_Name"`
			PluginOption string `yaml:"plugin_option" json:"Plugin_Option"`
		} `yaml:"plugins" json:"Plugins"`
	} `yaml:"metrics" json:"Metrics"`
}

MetricConfig is struct of metric collection config yaml file

type MetricConfigUpdateRequest

type MetricConfigUpdateRequest struct {
	APIKey string       `json:"apikey"`
	Config MetricConfig `json:"config"`
}

MetricConfigUpdateRequest is /metric/config/update API

type MetricConfigUpdateResponse

type MetricConfigUpdateResponse struct {
	Status  string `json:"status"`
	Message string `json:"message"`
}

MetricConfigUpdateResponse is /metric/config/update API

type MetricRequest

type MetricRequest struct {
	APIKey string `json:"apikey"`
}

MetricRequest is /metric API

type MetricResponse

type MetricResponse struct {
	MetricData []MetricsData `json:"metric_data"`
	Message    string        `json:"message"`
}

MetricResponse is /metric API

type MetricsData

type MetricsData struct {
	HostName  string             `json:"hostname"`
	Timestamp int64              `json:"timestamp"`
	Metrics   map[string]float64 `json:"metrics"`
}

MetricsData is actual metrics

type MonitorRequest

type MonitorRequest struct {
	APIKey       string `json:"apikey"`
	PluginName   string `json:"plugin_name"  binding:"required"`
	PluginOption string `json:"plugin_option"`
}

MonitorRequest is /monitor API

type MonitorResponse

type MonitorResponse struct {
	ReturnValue int    `json:"return_value"`
	Message     string `json:"message"`
}

MonitorResponse is /monitor API

type ProxyRequest

type ProxyRequest struct {
	ProxyHostPort []string `json:"proxy_hostport"`
	RequestType   string   `json:"request_type"`
	RequestJSON   []byte   `json:"request_json"`
}

ProxyRequest is /proxy API

type RequestStatusData

type RequestStatusData struct {
	URL    string         `json:"url"`
	Counts map[int]uint64 `json:"counts"`
}

RequestStatusData is data part of RequestStatusResponse

type RequestStatusResponse

type RequestStatusResponse struct {
	Last1 []RequestStatusData `json:"last1"`
	Last5 []RequestStatusData `json:"last5"`
}

RequestStatusResponse is /status/request API

type StatusResponse

type StatusResponse struct {
	AppVersion            string            `json:"app_version"`
	UptimeSeconds         int64             `json:"uptime_seconds"`
	DisableCollectMetrics bool              `json:"disable_collect_metrics"`
	NumGoroutine          int               `json:"num_goroutine"`
	MetricBufferStatus    map[string]int64  `json:"metric_buffer_status"`
	Callers               []string          `json:"callers"`
	LevelDBProperties     map[string]string `json:"leveldb_properties"`
}

StatusResponse is /status API

Jump to

Keyboard shortcuts

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