Documentation ¶
Index ¶
- Variables
- type CollectMetricsPayload
- type CreateHostPayload
- type Job
- type JobAPI
- type JobRequestAPI
- type JobRouterFunc
- type LogQueue
- type MackerelFindParamHolder
- type MackerelHostStatus
- type MackerelOption
- type Option
- type Queue
- func (q *Queue) PushError(err error)
- func (q *Queue) PushInfo(msg string)
- func (q *Queue) PushInternalWork(work JobAPI)
- func (q *Queue) PushMackerelAPIWork(work JobAPI)
- func (q *Queue) PushRequest(requestName string, payload interface{})
- func (q *Queue) PushSakuraAPIWork(work JobAPI)
- func (q *Queue) PushThrottledAPIWork(work JobAPI)
- func (q *Queue) PushTrace(msg string)
- func (q *Queue) PushWarn(err error)
- func (q *Queue) Stop()
- func (q *Queue) StopByError(err error)
- type ReconcileHostsPayload
- type SacloudMetrics
- type SakuraCloudOption
- type SourcePayload
- type SourcePayloadHolder
- type TimerJob
- type TimerJobAPI
- type WorkerFunc
Constants ¶
This section is empty.
Variables ¶
var ( // DefaultJobQueueBufSize ジョブキューのデフォルトサイズ DefaultJobQueueBufSize = 50 // DefaultSakuraAPIReqQueueBufSize さくらのクラウドAPIキューのデフォルトサイズ DefaultSakuraAPIReqQueueBufSize = 10 // DefaultMackerelAPIReqQueueBufSize MackerelAPIキューのデフォルトサイズ DefaultMackerelAPIReqQueueBufSize = 10 // DefaultThrottledAPIReqQueueBufSize スロットリング対象APIキューのデフォルトサイズ DefaultThrottledAPIReqQueueBufSize = 0 // DefaultAPICallInterval スロットリングAPI待機時間デフォルト値 DefaultAPICallInterval = 500 * time.Millisecond // DefaultTimerJobInterval タイマージョブのデフォルト起動間隔 DefaultTimerJobInterval = 2 * time.Minute // DefaultReconcileJobInterval エージェントとの統合処理のデフォルト起動間隔 DefaultReconcileJobInterval = 3 * time.Minute // DefaultMetricsHistoryPeriod メトリクス収集時の過去分取得範囲デフォルト値 DefaultMetricsHistoryPeriod = 15 * time.Minute // DefaultHealthCheckWebServerPort ヘルスチェック用Webサーバーのデフォルトポート DefaultHealthCheckWebServerPort = 39700 // DefaultIgnoreTag sackerelでの連携対象外を示すマーカータグ名称 DefaultIgnoreTag = "@mackerel-ignore" // DefaultAgentTag mackerel-agentを手動インストール DefaultAgentTag = "@mackerel-agent" )
var ( // MackerelHostStatusStandby "standby"ホストステータス MackerelHostStatusStandby = MackerelHostStatus("standby") // MackerelHostStatusWorking "working"ホストステータス MackerelHostStatusWorking = MackerelHostStatus("working") // MackerelHostStatusMaintenance "maintenance"ホストステータス MackerelHostStatusMaintenance = MackerelHostStatus("maintenance") // MackerelHostStatusPowerOff "poweroff"ホストステータス MackerelHostStatusPowerOff = MackerelHostStatus("poweroff") )
var SakuraCloudDefaultZones = []string{"is1b", "tk1a"}
SakuraCloudDefaultZones さくらのクラウド対象ゾーンのデフォルト値
Functions ¶
This section is empty.
Types ¶
type CollectMetricsPayload ¶
type CollectMetricsPayload struct { *SourcePayload Metrics *SacloudMetrics MackerelMetricsParam []*mkr.HostMetricValue }
CollectMetricsPayload メトリクス収集用ジョブで利用するペイロード
func NewCollectMetricsPayload ¶
func NewCollectMetricsPayload(sourcePayload *SourcePayload) *CollectMetricsPayload
NewCollectMetricsPayload CollectMetricsPayloadを新規作成する
type CreateHostPayload ¶
type CreateHostPayload struct { // SourcePayload ソースとなるサーバー/ホスト情報 *SourcePayload // MackerelHostParam mackerelへのサーバー登録用パラメータ MackerelHostParam *mkr.CreateHostParam }
CreateHostPayload Mackerel上でのホスト作成/更新を伴うジョブで利用するペイロード
func NewCreateHostPayload ¶
func NewCreateHostPayload(source interface{}, zone string, resourceID int64, sourceType reflect.Type) *CreateHostPayload
NewCreateHostPayload CreateHostPayloadの新規作成
func (*CreateHostPayload) GetFindParam ¶
func (p *CreateHostPayload) GetFindParam() *mkr.FindHostsParam
GetFindParam Mackerelからのホスト検索用パラメータを取得する
func (*CreateHostPayload) IsRoleUpdated ¶
func (p *CreateHostPayload) IsRoleUpdated() (bool, error)
IsRoleUpdated ロール情報の更新が行われているか判定
func (*CreateHostPayload) IsStatusUpdated ¶
func (p *CreateHostPayload) IsStatusUpdated() (bool, error)
IsStatusUpdated ホストステータスの更新が行われているか判定
type Job ¶
type Job struct { Name string WorkerFunc WorkerFunc Payload interface{} }
Job ジョブキューでのジョブ定義
func NewJob ¶
func NewJob(name string, workerFunc WorkerFunc, payload interface{}) *Job
NewJob Jobの新規作成
type JobRequestAPI ¶
type JobRequestAPI interface { GetName() string GetPayload() interface{} }
JobRequestAPI ジョブキューへのルーティング要求時パラメータ
type JobRouterFunc ¶
type JobRouterFunc func(*Queue, *Option, JobRequestAPI)
JobRouterFunc ジョブキューでのルーティング処理用関数シグニチャ
type MackerelFindParamHolder ¶
type MackerelFindParamHolder interface {
GetFindParam() *mkr.FindHostsParam
}
MackerelFindParamHolder Mackerelからのホスト検索用パラメータを保持していることを表すインターフェース
type MackerelOption ¶
MackerelOption Mackerel用の動作オプション
func NewMackerelOption ¶
func NewMackerelOption() *MackerelOption
NewMackerelOption MackerelOptionの新規作成
type Option ¶
type Option struct { SakuraCloudOption *SakuraCloudOption MackerelOption *MackerelOption JobQueueBufSize int ThrottledAPIReqQueueBufSize int TimerJobInterval time.Duration ReconcileJobInterval time.Duration MetricsHistoryPeriod time.Duration APICallInterval time.Duration HealthCheckWebServerPort int DisableHealthCheck bool SkipInit bool TraceLog bool InfoLog bool WarnLog bool ErrorLog bool IgnoreTag string AgentTag string }
Option sackerel動作オプション
func (*Option) QueueBufSizes ¶
QueueBufSizes ジョブキューのサイズ取得
type Queue ¶
type Queue struct { Request chan JobRequestAPI Internal chan JobAPI SakuraRequest chan JobAPI MackerelRequest chan JobAPI ThrottledRequest chan JobAPI Logs *LogQueue Quit chan error }
Queue ジョブキュー
func NewQueue ¶
func NewQueue(workBufSize int, throttledReqBufSize int, sakuraReqBufSize int, mkrReqBufSize int) *Queue
NewQueue ジョブキューの新規作成
func (*Queue) PushInternalWork ¶
PushInternalWork push job to internal-job queue
func (*Queue) PushMackerelAPIWork ¶
PushMackerelAPIWork push job to mackerelAPI-job queue
func (*Queue) PushRequest ¶
PushRequest push new request to job-routing queue
func (*Queue) PushSakuraAPIWork ¶
PushSakuraAPIWork push job to sakuraAPI-job queue
func (*Queue) PushThrottledAPIWork ¶
PushThrottledAPIWork push job to throttledAPI-job queue
func (*Queue) StopByError ¶
StopByError push stop request wth error to queue
type ReconcileHostsPayload ¶ added in v0.0.2
type ReconcileHostsPayload struct { // FromSackerelHost sackerelが登録したホスト FromSackerelHost *mkr.Host // FromAgentHost mackerel-agentが登録したホスト FromAgentHost *mkr.Host }
ReconcileHostsPayload ホストリコンサイル用ジョブで利用するペイロード
func (*ReconcileHostsPayload) GetSacloudServerInfo ¶ added in v0.0.2
func (p *ReconcileHostsPayload) GetSacloudServerInfo() (string, int64, error)
GetSacloudServerInfo 対象Mackerelホストからさくらのクラウドリソース情報を取得する
type SacloudMetrics ¶
type SacloudMetrics struct { CPU []*sacloud.MonitorValues Disk []*sacloud.MonitorValues Interface []*sacloud.MonitorValues Database []*sacloud.MonitorValues }
SacloudMetrics さくらのクラウドから収集するメトリクスを格納する構造体
type SakuraCloudOption ¶
type SakuraCloudOption struct { AccessToken string AccessTokenSecret string Zone []string IgnoreTags []string TraceMode bool ReuqestQueueBufSize int }
SakuraCloudOption さくらのクラウド用の動作オプション
func NewSakuraCloudOption ¶
func NewSakuraCloudOption() *SakuraCloudOption
NewSakuraCloudOption SakuraCloudOptionの新規作成
type SourcePayload ¶
type SourcePayload struct { SacloudSource interface{} SacloudZone string SacloudResourceID int64 SourceType reflect.Type MackerelID string MackerelHost *mkr.Host MackerelHostStatus MackerelHostStatus }
SourcePayload 連携元データを内包するペイロード
func NewSourcePayload ¶
func NewSourcePayload(source interface{}, zone string, resourceID int64, sourceType reflect.Type) *SourcePayload
NewSourcePayload SourcePayloadの新規作成
func (*SourcePayload) GenerateMackerelName ¶
func (p *SourcePayload) GenerateMackerelName() string
GenerateMackerelName さくらのクラウド上のリソース定義を元にMackerel上でのホスト名を生成する
func (*SourcePayload) GetSourcePayload ¶
func (p *SourcePayload) GetSourcePayload() *SourcePayload
GetSourcePayload ペイロードの取得
type SourcePayloadHolder ¶
type SourcePayloadHolder interface {
GetSourcePayload() *SourcePayload
}
SourcePayloadHolder SourcePayloadを保持していることを表すインターフェース
type TimerJob ¶
TimerJob タイマー起動されるジョブ
func NewTimerJob ¶
func NewTimerJob(name string, workerFunc WorkerFunc, tickerDuration time.Duration) *TimerJob
NewTimerJob タイマー起動されるジョブの作成
func (*TimerJob) GetTickerDuration ¶
GetTickerDuration タイマー起動間隔の取得
type TimerJobAPI ¶
TimerJobAPI タイマー起動されるジョブを表すインターフェイス
type WorkerFunc ¶
WorkerFunc ジョブキューでのワーカーが保有する処理用関数シグニチャ