github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/clients/pkg/promtail/targets/cloudflare/fields.go (about)

     1  package cloudflare
     2  
     3  import (
     4  	"fmt"
     5  )
     6  
     7  type FieldsType string
     8  
     9  const (
    10  	FieldsTypeDefault  FieldsType = "default"
    11  	FieldsTypeMinimal  FieldsType = "minimal"
    12  	FieldsTypeExtended FieldsType = "extended"
    13  	FieldsTypeAll      FieldsType = "all"
    14  )
    15  
    16  var (
    17  	defaultFields = []string{
    18  		"ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp", "EdgeResponseBytes",
    19  		"EdgeRequestHost", "EdgeResponseStatus", "EdgeStartTimestamp", "RayID",
    20  	}
    21  	minimalFields = append(defaultFields, []string{
    22  		"ZoneID", "ClientSSLProtocol", "ClientRequestProtocol", "ClientRequestPath", "ClientRequestUserAgent", "ClientRequestReferer",
    23  		"EdgeColoCode", "ClientCountry", "CacheCacheStatus", "CacheResponseStatus", "EdgeResponseContentType", "SecurityLevel",
    24  		"WAFAction", "WAFProfile", "WAFRuleID", "WAFRuleMessage", "EdgeRateLimitID", "EdgeRateLimitAction",
    25  	}...)
    26  	extendedFields = append(minimalFields, []string{
    27  		"ClientSSLCipher", "ClientASN", "ClientIPClass", "CacheResponseBytes", "EdgePathingOp", "EdgePathingSrc", "EdgePathingStatus", "ParentRayID",
    28  		"WorkerCPUTime", "WorkerStatus", "WorkerSubrequest", "WorkerSubrequestCount", "OriginIP", "OriginResponseStatus", "OriginSSLProtocol",
    29  		"OriginResponseHTTPExpires", "OriginResponseHTTPLastModified",
    30  	}...)
    31  	allFields = append(extendedFields, []string{
    32  		"BotScore", "BotScoreSrc", "ClientRequestBytes", "ClientSrcPort", "ClientXRequestedWith", "CacheTieredFill", "EdgeResponseCompressionRatio", "EdgeServerIP", "FirewallMatchesSources",
    33  		"FirewallMatchesActions", "FirewallMatchesRuleIDs", "OriginResponseBytes", "OriginResponseTime", "ClientDeviceType", "WAFFlags", "WAFMatchedVar", "EdgeColoID",
    34  	}...)
    35  )
    36  
    37  func Fields(t FieldsType) ([]string, error) {
    38  	switch t {
    39  	case FieldsTypeDefault:
    40  		return defaultFields, nil
    41  	case FieldsTypeMinimal:
    42  		return minimalFields, nil
    43  	case FieldsTypeExtended:
    44  		return extendedFields, nil
    45  	case FieldsTypeAll:
    46  		return allFields, nil
    47  	default:
    48  		return nil, fmt.Errorf("unknown fields type: %s", t)
    49  	}
    50  }