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  )