Documentation
¶
Index ¶
Constants ¶
View Source
const ( DINGTALK_SINK = "DingTalkSink" WARNING int = 2 NORMAL int = 1 DEFAULT_MSG_TYPE = "text" CONTENT_TYPE_JSON = "application/json" LABEL_TEMPLATE = "%s\n" TIME_FORMAT = "2006-01-02 15:04:05" )
View Source
const ( MARKDOWN_MSG_TYPE = "markdown" MARKDOWN_TEMPLATE = "Level: %s \n\nKind: %s \n\nNamespace: %s \n\nName: %s \n\nReason: %s \n\nTimestamp: %s \n\nMessage: %s" MARKDOWN_LINK_TEMPLATE = "[%s](%s)" MARKDOWN_TEXT_BOLD = "**%s**" MARKDOWN_NEW_LINE = "\n\n" URL_ALIYUN_K8S_CONSULE = "https://cs.console.aliyun.com/#/k8s" //阿里云 kubernetes 管理控制台, Deployment,StatefulSet,DaemonSet 有同样的URL规律 URL_ALIYUN_RESOURCE_DETAIL_TEMPLATE = URL_ALIYUN_K8S_CONSULE + "/%s/detail/%s/%s/%s/%s/pods" URL_ALIYUN_POD_TEMPLATE = URL_ALIYUN_K8S_CONSULE + "/pod/%s/%s/%s/container" URL_ALIYUN_CROBJOB_TEMPLATE = URL_ALIYUN_K8S_CONSULE + "/cronjob/detail/%s/%s/%s/%s/jobs" URL_ALIYUN_SVC_TEMPLATE = URL_ALIYUN_K8S_CONSULE + "/service/detail/%s/%s/%s/%s" URL_ALIYUN_NAMESPACE_TEMPLATE = URL_ALIYUN_K8S_CONSULE + "/namespace" URL_ALIYUN_ECS_TEMPLATE = "https://ecs.console.aliyun.com/#/server/%s/detail?regionId=%s" )
Variables ¶
View Source
var ( MSG_TEMPLATE = "Level:%s \nKind:%s \nNamespace:%s \nName:%s \nReason:%s \nTimestamp:%s \nMessage:%s" MSG_TEMPLATE_ARR = [][]string{ {"Level"}, {"Kind"}, {"Namespace"}, {"Name"}, {"Reason"}, {"Timestamp"}, {"Message"}, } )
Functions ¶
This section is empty.
Types ¶
type DingTalkMarkdown ¶ added in v1.1.0
type DingTalkMsg ¶
type DingTalkMsg struct { MsgType string `json:"msgtype"` Text DingTalkText `json:"text"` Markdown DingTalkMarkdown `json:"markdown"` }
* dingtalk msg struct
type DingTalkSink ¶
type DingTalkSink struct { Endpoint string Namespaces []string Kinds []string Token string Level int Labels []string MsgType string ClusterID string Secret string Region string }
* dingtalk sink usage --sink:dingtalk:https://oapi.dingtalk.com/robot/send?access_token=[access_token]&level=Warning&label=[label]
level: Normal or Warning. The event level greater than global level will emit. label: some thing unique when you want to distinguish different k8s clusters.
func NewDingTalkSink ¶
func NewDingTalkSink(uri *url.URL) (*DingTalkSink, error)
func (*DingTalkSink) Ding ¶
func (d *DingTalkSink) Ding(event *v1.Event)
func (*DingTalkSink) ExportEvents ¶
func (d *DingTalkSink) ExportEvents(batch *core.EventBatch)
func (*DingTalkSink) Name ¶
func (d *DingTalkSink) Name() string
func (*DingTalkSink) Stop ¶
func (d *DingTalkSink) Stop()
type DingTalkText ¶
type DingTalkText struct {
Content string `json:"content"`
}
type MarkdownMsgBuilder ¶ added in v1.1.0
func NewMarkdownMsgBuilder ¶ added in v1.1.0
func NewMarkdownMsgBuilder(clusterID, region string, event *v1.Event) *MarkdownMsgBuilder
func (*MarkdownMsgBuilder) AddLabels ¶ added in v1.1.0
func (m *MarkdownMsgBuilder) AddLabels(labels []string)
func (*MarkdownMsgBuilder) AddNodeName ¶ added in v1.2.0
func (m *MarkdownMsgBuilder) AddNodeName(nodeName string)
func (*MarkdownMsgBuilder) Build ¶ added in v1.1.0
func (m *MarkdownMsgBuilder) Build() string
Click to show internal directories.
Click to hide internal directories.