github.com/GuanceCloud/cliutils@v1.1.21/point/category.go (about) 1 // Unless explicitly stated otherwise all files in this repository are licensed 2 // under the MIT License. 3 // This product includes software developed at Guance Cloud (https://www.guance.com/). 4 // Copyright 2021-present Guance, Inc. 5 6 package point 7 8 type Category int 9 10 func (c Category) String() string { 11 if x, ok := categoryShort[c]; !ok { 12 return SUnknownCategory 13 } else { 14 return x 15 } 16 } 17 18 func (c Category) URL() string { 19 if x, ok := categoryURL[c]; !ok { 20 return URLUnknownCategory 21 } else { 22 return x 23 } 24 } 25 26 func (c Category) Alias() string { 27 if x, ok := categoryAias[c]; !ok { 28 return CUnknown 29 } else { 30 return x 31 } 32 } 33 34 func CatAlias(c string) Category { 35 for k, v := range categoryAias { 36 if c == v { 37 return k 38 } 39 } 40 return UnknownCategory 41 } 42 43 func CatString(c string) Category { 44 for k, v := range categoryShort { 45 if c == v { 46 return k 47 } 48 } 49 return UnknownCategory 50 } 51 52 func CatURL(c string) Category { 53 for k, v := range categoryURL { 54 if c == v { 55 return k 56 } 57 } 58 return UnknownCategory 59 } 60 61 func AllCategories() []Category { 62 return []Category{ 63 Metric, 64 Network, 65 KeyEvent, 66 Object, 67 CustomObject, 68 Logging, 69 Tracing, 70 RUM, 71 Security, 72 Profiling, 73 DynamicDWCategory, 74 DialTesting, 75 } 76 } 77 78 const ( 79 UnknownCategory Category = iota 80 DynamicDWCategory 81 MetricDeprecated 82 83 Metric 84 Network 85 KeyEvent 86 Object 87 CustomObject 88 Logging 89 Tracing 90 RUM 91 Security 92 Profiling 93 DialTesting 94 95 SUnknownCategory = "unknown" 96 SDynamicDWCategory = "dynamic_dw" // NOTE: not used 97 SMetric = "metric" 98 SMetricDeprecated = "metrics" 99 SNetwork = "network" 100 SKeyEvent = "keyevent" 101 SObject = "object" 102 SCustomObject = "custom_object" 103 SLogging = "logging" 104 STracing = "tracing" 105 SRUM = "rum" 106 SSecurity = "security" 107 SProfiling = "profiling" 108 SDialTesting = "dialtesting" 109 110 URLUnknownCategory = "/v1/write/unknown" 111 URLDynamicDWCategory = "/v1/write/dynamic_dw" // NOTE: not used 112 URLMetric = "/v1/write/metric" 113 URLMetricDeprecated = "/v1/write/metrics" 114 URLNetwork = "/v1/write/network" 115 URLKeyEvent = "/v1/write/keyevent" 116 URLObject = "/v1/write/object" 117 URLCustomObject = "/v1/write/custom_object" 118 URLLogging = "/v1/write/logging" 119 URLTracing = "/v1/write/tracing" 120 URLRUM = "/v1/write/rum" 121 URLSecurity = "/v1/write/security" 122 URLProfiling = "/v1/write/profiling" 123 URLDialTesting = "/v1/write/dialtesting" // NOTE: not used 124 125 CUnknown = "UNKNOWN" 126 CDynamicDW = "DYNAMIC_DW" 127 CM = "M" 128 CN = "N" 129 CE = "E" 130 CO = "O" 131 CCO = "CO" 132 CL = "L" 133 CT = "T" 134 CR = "R" 135 CS = "S" 136 CP = "P" 137 CDT = "DT" 138 ) 139 140 var ( 141 categoryURL = map[Category]string{ 142 Metric: URLMetric, 143 MetricDeprecated: URLMetricDeprecated, 144 145 Network: URLNetwork, 146 KeyEvent: URLKeyEvent, 147 Object: URLObject, 148 CustomObject: URLCustomObject, 149 Logging: URLLogging, 150 Tracing: URLTracing, 151 RUM: URLRUM, 152 Security: URLSecurity, 153 Profiling: URLProfiling, 154 155 DialTesting: URLDialTesting, 156 157 DynamicDWCategory: URLDynamicDWCategory, 158 159 UnknownCategory: URLUnknownCategory, 160 } 161 162 categoryAias = map[Category]string{ 163 Metric: CM, 164 Network: CN, 165 KeyEvent: CE, 166 Object: CO, 167 CustomObject: CCO, 168 Logging: CL, 169 Tracing: CT, 170 RUM: CR, 171 Security: CS, 172 Profiling: CP, 173 DialTesting: CDT, 174 UnknownCategory: CUnknown, 175 DynamicDWCategory: CDynamicDW, 176 } 177 178 categoryShort = map[Category]string{ 179 Metric: SMetric, 180 MetricDeprecated: SMetricDeprecated, 181 Network: SNetwork, 182 KeyEvent: SKeyEvent, 183 Object: SObject, 184 CustomObject: SCustomObject, 185 Logging: SLogging, 186 Tracing: STracing, 187 RUM: SRUM, 188 Security: SSecurity, 189 Profiling: SProfiling, 190 DialTesting: SDialTesting, 191 UnknownCategory: SUnknownCategory, 192 DynamicDWCategory: SDynamicDWCategory, 193 } 194 )