forked from getsentry/sentry-java
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathISpan.java
More file actions
173 lines (150 loc) · 3.64 KB
/
ISpan.java
File metadata and controls
173 lines (150 loc) · 3.64 KB
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
package io.sentry;
import java.util.Date;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/** Represents performance monitoring Span. */
public interface ISpan {
/**
* Starts a child Span.
*
* @param operation - new span operation name
* @return a new transaction span
*/
@NotNull
ISpan startChild(@NotNull String operation);
@ApiStatus.Internal
@NotNull
ISpan startChild(
@NotNull String operation, @Nullable String description, @Nullable Date timestamp);
/**
* Starts a child Span.
*
* @param operation - new span operation name
* @param description - new span description name
* @return a new transaction span
*/
@NotNull
ISpan startChild(@NotNull String operation, @Nullable String description);
/**
* Returns the trace information that could be sent as a sentry-trace header.
*
* @return SentryTraceHeader.
*/
@NotNull
SentryTraceHeader toSentryTrace();
/**
* Returns the trace state information. @see <a
* href="https://develop.sentry.dev/sdk/trace-context/">Trace Context</a>.
*
* @return a trace state or {@code null} if {@link SentryOptions#isTraceSampling()} is disabled.
*/
@Nullable
@ApiStatus.Experimental
TraceState traceState();
/**
* Returns the trace state that can be sent as a "tracestate" header.
*
* @return TraceStateHeader or {@code null} if {@link SentryOptions#isTraceSampling()} is
* disabled.
*/
@Nullable
@ApiStatus.Experimental
TraceStateHeader toTraceStateHeader();
/** Sets span timestamp marking this span as finished. */
void finish();
/**
* Sets span timestamp marking this span as finished.
*
* @param status - the status
*/
void finish(@Nullable SpanStatus status);
/**
* Sets span operation.
*
* @param operation - the operation
*/
void setOperation(@NotNull String operation);
/**
* Returns the span operation.
*
* @return the operation
*/
@NotNull
String getOperation();
/**
* Sets span description.
*
* @param description - the description.
*/
void setDescription(@Nullable String description);
/**
* Returns the span description.
*
* @return the description
*/
@Nullable
String getDescription();
/**
* Sets span status.
*
* @param status - the status.
*/
void setStatus(@Nullable SpanStatus status);
/**
* Returns the span status
*
* @return the status
*/
@Nullable
SpanStatus getStatus();
/**
* Sets the throwable that was thrown during the execution of the span.
*
* @param throwable - the throwable.
*/
void setThrowable(@Nullable Throwable throwable);
/**
* Gets the throwable that was thrown during the execution of the span.
*
* @return throwable or {@code null} if none
*/
@Nullable
Throwable getThrowable();
/**
* Gets the span context.
*
* @return the span context
*/
@NotNull
SpanContext getSpanContext();
/**
* Sets the tag on span or transaction.
*
* @param key the tag key
* @param value the tag value
*/
void setTag(@NotNull String key, @NotNull String value);
@Nullable
String getTag(@NotNull String key);
/**
* Returns if span has finished.
*
* @return if span has finished.
*/
boolean isFinished();
/**
* Sets extra data on span or transaction.
*
* @param key the data key
* @param value the data value
*/
void setData(@NotNull String key, @NotNull Object value);
/**
* Returns extra data from span or transaction.
*
* @return the data
*/
@Nullable
Object getData(@NotNull String key);
}