-
Notifications
You must be signed in to change notification settings - Fork 51
/
remotedependencydata.go
134 lines (108 loc) · 4.22 KB
/
remotedependencydata.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
package contracts
// NOTE: This file was automatically generated.
// An instance of Remote Dependency represents an interaction of the monitored
// component with a remote component/service like SQL or an HTTP endpoint.
type RemoteDependencyData struct {
Domain
// Schema version
Ver int `json:"ver"`
// Name of the command initiated with this dependency call. Low cardinality
// value. Examples are stored procedure name and URL path template.
Name string `json:"name"`
// Identifier of a dependency call instance. Used for correlation with the
// request telemetry item corresponding to this dependency call.
Id string `json:"id"`
// Result code of a dependency call. Examples are SQL error code and HTTP
// status code.
ResultCode string `json:"resultCode"`
// Request duration in format: DD.HH:MM:SS.MMMMMM. Must be less than 1000
// days.
Duration string `json:"duration"`
// Indication of successfull or unsuccessfull call.
Success bool `json:"success"`
// Command initiated by this dependency call. Examples are SQL statement and
// HTTP URL's with all query parameters.
Data string `json:"data"`
// Target site of a dependency call. Examples are server name, host address.
Target string `json:"target"`
// Dependency type name. Very low cardinality value for logical grouping of
// dependencies and interpretation of other fields like commandName and
// resultCode. Examples are SQL, Azure table, and HTTP.
Type string `json:"type"`
// Collection of custom properties.
Properties map[string]string `json:"properties,omitempty"`
// Collection of custom measurements.
Measurements map[string]float64 `json:"measurements,omitempty"`
}
// Returns the name used when this is embedded within an Envelope container.
func (data *RemoteDependencyData) EnvelopeName(key string) string {
if key != "" {
return "Microsoft.ApplicationInsights." + key + ".RemoteDependency"
} else {
return "Microsoft.ApplicationInsights.RemoteDependency"
}
}
// Returns the base type when placed within a Data object container.
func (data *RemoteDependencyData) BaseType() string {
return "RemoteDependencyData"
}
// Truncates string fields that exceed their maximum supported sizes for this
// object and all objects it references. Returns a warning for each affected
// field.
func (data *RemoteDependencyData) Sanitize() []string {
var warnings []string
if len(data.Name) > 1024 {
data.Name = data.Name[:1024]
warnings = append(warnings, "RemoteDependencyData.Name exceeded maximum length of 1024")
}
if len(data.Id) > 128 {
data.Id = data.Id[:128]
warnings = append(warnings, "RemoteDependencyData.Id exceeded maximum length of 128")
}
if len(data.ResultCode) > 1024 {
data.ResultCode = data.ResultCode[:1024]
warnings = append(warnings, "RemoteDependencyData.ResultCode exceeded maximum length of 1024")
}
if len(data.Data) > 8192 {
data.Data = data.Data[:8192]
warnings = append(warnings, "RemoteDependencyData.Data exceeded maximum length of 8192")
}
if len(data.Target) > 1024 {
data.Target = data.Target[:1024]
warnings = append(warnings, "RemoteDependencyData.Target exceeded maximum length of 1024")
}
if len(data.Type) > 1024 {
data.Type = data.Type[:1024]
warnings = append(warnings, "RemoteDependencyData.Type exceeded maximum length of 1024")
}
if data.Properties != nil {
for k, v := range data.Properties {
if len(v) > 8192 {
data.Properties[k] = v[:8192]
warnings = append(warnings, "RemoteDependencyData.Properties has value with length exceeding max of 8192: "+k)
}
if len(k) > 150 {
data.Properties[k[:150]] = data.Properties[k]
delete(data.Properties, k)
warnings = append(warnings, "RemoteDependencyData.Properties has key with length exceeding max of 150: "+k)
}
}
}
if data.Measurements != nil {
for k, v := range data.Measurements {
if len(k) > 150 {
data.Measurements[k[:150]] = v
delete(data.Measurements, k)
warnings = append(warnings, "RemoteDependencyData.Measurements has key with length exceeding max of 150: "+k)
}
}
}
return warnings
}
// Creates a new RemoteDependencyData instance with default values set by the schema.
func NewRemoteDependencyData() *RemoteDependencyData {
return &RemoteDependencyData{
Ver: 2,
Success: true,
}
}