Repository navigation
Expand file tree
/
Copy pathSentryProperties.java
More file actions
225 lines (174 loc) · 6.46 KB
/
Copy pathSentryProperties.java
File metadata and controls
225 lines (174 loc) · 6.46 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
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
package io.sentry.spring.boot;
import com.jakewharton.nopen.annotation.Open;
import io.sentry.SentryOptions;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.slf4j.event.Level;
import org.springframework.boot.context.properties.ConfigurationProperties;
/** Configuration for Sentry integration. */
@ConfigurationProperties("sentry")
@Open
public class SentryProperties extends SentryOptions {
/** Whether to use Git commit id as a release. */
private boolean useGitCommitIdAsRelease = true;
/** Report all or only uncaught web exceptions. */
private int exceptionResolverOrder = 1;
/**
* Defines the {@link io.sentry.spring.SentryUserFilter} order. The default value is {@link
* org.springframework.core.Ordered.LOWEST_PRECEDENCE}, if Spring Security is auto-configured, its
* guaranteed to run after Spring Security filter chain.
*/
private @Nullable Integer userFilterOrder;
@ApiStatus.Experimental private boolean keepTransactionsOpenForAsyncResponses = false;
/** Logging framework integration properties. */
private @NotNull Logging logging = new Logging();
/** Graphql integration properties. */
private @NotNull Graphql graphql = new Graphql();
/** Clients integration properties. */
private @NotNull Clients clients = new Clients();
/** Monitor every {@code @Scheduled} method with Sentry Crons. */
private boolean monitorScheduledTasks = false;
/**
* {@code @Scheduled} methods not to monitor when {@code monitorScheduledTasks} is on, as {@code
* ClassName.methodName} or a regex matching it.
*/
private @NotNull List<String> excludeScheduledTasks = new ArrayList<>();
public boolean isUseGitCommitIdAsRelease() {
return useGitCommitIdAsRelease;
}
public void setUseGitCommitIdAsRelease(boolean useGitCommitIdAsRelease) {
this.useGitCommitIdAsRelease = useGitCommitIdAsRelease;
}
/**
* Returns the order used for Spring SentryExceptionResolver, which determines whether all web
* exceptions are reported, or only uncaught exceptions.
*
* @return order to use for Spring SentryExceptionResolver
*/
public int getExceptionResolverOrder() {
return exceptionResolverOrder;
}
/**
* Sets the order to use for Spring SentryExceptionResolver, which determines whether all web
* exceptions are reported, or only uncaught exceptions.
*
* @param exceptionResolverOrder order to use for Spring SentryExceptionResolver
*/
public void setExceptionResolverOrder(int exceptionResolverOrder) {
this.exceptionResolverOrder = exceptionResolverOrder;
}
public @Nullable Integer getUserFilterOrder() {
return userFilterOrder;
}
public void setUserFilterOrder(final @Nullable Integer userFilterOrder) {
this.userFilterOrder = userFilterOrder;
}
public boolean isKeepTransactionsOpenForAsyncResponses() {
return keepTransactionsOpenForAsyncResponses;
}
public void setKeepTransactionsOpenForAsyncResponses(
boolean keepTransactionsOpenForAsyncResponses) {
this.keepTransactionsOpenForAsyncResponses = keepTransactionsOpenForAsyncResponses;
}
public @NotNull Logging getLogging() {
return logging;
}
public void setLogging(@NotNull Logging logging) {
this.logging = logging;
}
public @NotNull Graphql getGraphql() {
return graphql;
}
public void setGraphql(@NotNull Graphql graphql) {
this.graphql = graphql;
}
public @NotNull Clients getClients() {
return clients;
}
public void setClients(@NotNull Clients clients) {
this.clients = clients;
}
public boolean isMonitorScheduledTasks() {
return monitorScheduledTasks;
}
public void setMonitorScheduledTasks(boolean monitorScheduledTasks) {
this.monitorScheduledTasks = monitorScheduledTasks;
}
public @NotNull List<String> getExcludeScheduledTasks() {
return excludeScheduledTasks;
}
public void setExcludeScheduledTasks(@NotNull List<String> excludeScheduledTasks) {
this.excludeScheduledTasks = excludeScheduledTasks;
}
@Open
public static class Clients {
/** Enable automatic instrumentation of Spring-managed OkHttp clients. Disabled by default. */
private boolean okHttpEnabled = false;
public boolean isOkHttpEnabled() {
return okHttpEnabled;
}
public void setOkHttpEnabled(boolean okHttpEnabled) {
this.okHttpEnabled = okHttpEnabled;
}
}
@Open
public static class Logging {
/** Enable/Disable logging auto-configuration. */
private boolean enabled = true;
/** Minimum logging level for recording breadcrumbs. */
private @Nullable Level minimumBreadcrumbLevel;
/** Minimum logging level for recording events. */
private @Nullable Level minimumEventLevel;
/** Minimum logging level for recording log events. */
private @Nullable Level minimumLevel;
/** List of loggers the SentryAppender should be added to. */
private @NotNull List<String> loggers = Arrays.asList(org.slf4j.Logger.ROOT_LOGGER_NAME);
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public @Nullable Level getMinimumBreadcrumbLevel() {
return minimumBreadcrumbLevel;
}
public void setMinimumBreadcrumbLevel(@Nullable Level minimumBreadcrumbLevel) {
this.minimumBreadcrumbLevel = minimumBreadcrumbLevel;
}
public @Nullable Level getMinimumEventLevel() {
return minimumEventLevel;
}
public void setMinimumEventLevel(@Nullable Level minimumEventLevel) {
this.minimumEventLevel = minimumEventLevel;
}
public @Nullable Level getMinimumLevel() {
return minimumLevel;
}
public void setMinimumLevel(@Nullable Level minimumLevel) {
this.minimumLevel = minimumLevel;
}
@NotNull
public List<String> getLoggers() {
return loggers;
}
public void setLoggers(final @NotNull List<String> loggers) {
this.loggers = loggers;
}
}
@Open
public static class Graphql {
/** List of error types the Sentry Graphql integration should ignore. */
private @NotNull List<String> ignoredErrorTypes = new ArrayList<>();
@NotNull
public List<String> getIgnoredErrorTypes() {
return ignoredErrorTypes;
}
public void setIgnoredErrorTypes(final @NotNull List<String> ignoredErrorTypes) {
this.ignoredErrorTypes = ignoredErrorTypes;
}
}
}