dingtalk

package
v1.2.7 Latest Latest
Warning

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

Go to latest
Published: May 31, 2023 License: Apache-2.0 Imports: 13 Imported by: 0

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 DingTalkMarkdown struct {
	Title string `json:"title"`
	Text  string `json:"text"`
}

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

type MarkdownMsgBuilder struct {
	Labels     []string
	Region     string
	ClusterID  string
	OutputText string
}

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

Jump to

Keyboard shortcuts

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