Skip to content

Commit f2d9320

Browse files
authored
Merge pull request #3024 from 1c-syntax/translations_docs-features-monitoring-md--develop_en
Translate 'docs/features/Monitoring.md' in 'en'
2 parents 6a175ed + 644692a commit f2d9320

File tree

1 file changed

+280
-0
lines changed

1 file changed

+280
-0
lines changed

docs/en/features/Monitoring.md

Lines changed: 280 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,280 @@
1+
# Monitoring and reporting errors
2+
3+
BSL Language Server contains a mechanism for sending error data to Sentry.
4+
5+
The public Sentry.io is used as the Sentry server at https://sentry.io/organizations/1c-syntax/projects/bsl-language-server
6+
7+
Unfortunately, the peculiarities of configuring access to Sentry.io limit the ability to view data
8+
unauthorized users.
9+
10+
## Scheme
11+
12+
In the [configuration file](ConfigurationFile.md) of the BSL Language Server, you can configure the mode for sending error messages.
13+
The send mode can take one of three values:
14+
15+
* ask (default);
16+
* send always;
17+
* never send.
18+
19+
If the configuration file is missing a setting or has a value of "ask", when an error occurs
20+
the connected language client (used by the IDE) is sent a question about further actions with an error
21+
with the following answer options:
22+
23+
* send this error but ask again;
24+
* don't send this error but ask again.
25+
* send this error and don't ask again;
26+
* don't send this error and don't ask again;
27+
28+
You can completely refuse to answer (for example, by clicking on the cross next to the notification with the question).
29+
Lack of response is perceived as "don't send this error, but ask again".
30+
31+
The error message does not contain user or workstation identification information,
32+
except for the generated session UUID to bind errors that occur within one
33+
launching BSL Language Server.
34+
35+
> Attention!
36+
37+
If you enable debug logging (by setting `logback` or using environment variables), the contents of the logs (the last 100 entries) will be attached to the event that is sent.
38+
39+
Some messages sent between Language Client and BSL Language Server contain source code snippets
40+
or the entire text of the file.
41+
These fragments can also be attached to the sent message.
42+
43+
Sending message example:
44+
45+
??? event.json
46+
47+
```json
48+
{
49+
"event_id": "746e2e82f4c1499abcdd935bc4c26644",
50+
"project": 5790531,
51+
"release": "ae081de9d3c3496ddac1d176259365191966b0cd",
52+
"dist": null,
53+
"platform": "java",
54+
"message": "Internal error: java.lang.RuntimeException: psss",
55+
"datetime": "2022-07-14T11:07:57.875000Z",
56+
"tags": [
57+
[
58+
"environment",
59+
"production"
60+
],
61+
[
62+
"level",
63+
"error"
64+
],
65+
[
66+
"logger",
67+
"org.eclipse.lsp4j.jsonrpc.RemoteEndpoint"
68+
],
69+
[
70+
"runtime",
71+
"AdoptOpenJDK 15.0.2"
72+
],
73+
[
74+
"runtime.name",
75+
"AdoptOpenJDK"
76+
],
77+
[
78+
"release",
79+
"ae081de9d3c3496ddac1d176259365191966b0cd"
80+
],
81+
[
82+
"user",
83+
"id:49516eb9-2a0d-4a15-bd96-978b68d8d0df"
84+
],
85+
[
86+
"server.version",
87+
"feature-sentry-ae081de-DIRTY"
88+
]
89+
],
90+
"_metrics": {
91+
"bytes.ingested.event": 3289,
92+
"bytes.stored.event": 9875
93+
},
94+
"contexts": {
95+
"runtime": {
96+
"name": "AdoptOpenJDK",
97+
"version": "15.0.2",
98+
"type": "runtime"
99+
}
100+
},
101+
"culprit": "java.util.concurrent.CompletableFuture in encodeThrowable",
102+
"environment": "production",
103+
"exception": {
104+
"values": [
105+
{
106+
"type": "RuntimeException",
107+
"value": "psss",
108+
"module": "java.lang",
109+
"stacktrace": {
110+
"frames": [
111+
{
112+
"function": "run",
113+
"module": "java.util.concurrent.ForkJoinWorkerThread",
114+
"in_app": false
115+
},
116+
{
117+
"function": "runWorker",
118+
"module": "java.util.concurrent.ForkJoinPool",
119+
"in_app": false
120+
},
121+
{
122+
"function": "scan",
123+
"module": "java.util.concurrent.ForkJoinPool",
124+
"in_app": false
125+
},
126+
{
127+
"function": "topLevelExec",
128+
"module": "java.util.concurrent.ForkJoinPool$WorkQueue",
129+
"in_app": false
130+
},
131+
{
132+
"function": "doExec",
133+
"module": "java.util.concurrent.ForkJoinTask",
134+
"in_app": false
135+
},
136+
{
137+
"function": "exec",
138+
"module": "java.util.concurrent.CompletableFuture$AsyncSupply",
139+
"in_app": false
140+
},
141+
{
142+
"function": "run",
143+
"module": "java.util.concurrent.CompletableFuture$AsyncSupply",
144+
"in_app": false
145+
},
146+
{
147+
"function": "lambda$prepareCallHierarchy$8",
148+
"module": "com.github._1c_syntax.bsl.languageserver.BSLTextDocumentService",
149+
"filename": "BSLTextDocumentService.java",
150+
"abs_path": "BSLTextDocumentService.java",
151+
"lineno": 234,
152+
"in_app": true
153+
},
154+
{
155+
"function": "prepareCallHierarchy",
156+
"module": "com.github._1c_syntax.bsl.languageserver.providers.CallHierarchyProvider",
157+
"filename": "CallHierarchyProvider.java",
158+
"abs_path": "CallHierarchyProvider.java",
159+
"lineno": 62,
160+
"in_app": true
161+
}
162+
]
163+
},
164+
"thread_id": 24
165+
},
166+
{
167+
"type": "CompletionException",
168+
"value": "java.lang.RuntimeException: psss",
169+
"module": "java.util.concurrent",
170+
"stacktrace": {
171+
"frames": [
172+
{
173+
"function": "run",
174+
"module": "java.util.concurrent.ForkJoinWorkerThread",
175+
"in_app": false
176+
},
177+
{
178+
"function": "runWorker",
179+
"module": "java.util.concurrent.ForkJoinPool",
180+
"in_app": false
181+
},
182+
{
183+
"function": "scan",
184+
"module": "java.util.concurrent.ForkJoinPool",
185+
"in_app": false
186+
},
187+
{
188+
"function": "topLevelExec",
189+
"module": "java.util.concurrent.ForkJoinPool$WorkQueue",
190+
"in_app": false
191+
},
192+
{
193+
"function": "doExec",
194+
"module": "java.util.concurrent.ForkJoinTask",
195+
"in_app": false
196+
},
197+
{
198+
"function": "exec",
199+
"module": "java.util.concurrent.CompletableFuture$AsyncSupply",
200+
"in_app": false
201+
},
202+
{
203+
"function": "run",
204+
"module": "java.util.concurrent.CompletableFuture$AsyncSupply",
205+
"in_app": false
206+
},
207+
{
208+
"function": "completeThrowable",
209+
"module": "java.util.concurrent.CompletableFuture",
210+
"in_app": false
211+
},
212+
{
213+
"function": "encodeThrowable",
214+
"module": "java.util.concurrent.CompletableFuture",
215+
"in_app": false
216+
}
217+
]
218+
},
219+
"thread_id": 24
220+
}
221+
]
222+
},
223+
"extra": {
224+
"thread_name": "ForkJoinPool.commonPool-worker-19"
225+
},
226+
"fingerprint": [
227+
"{{ default }}"
228+
],
229+
"grouping_config": {
230+
"enhancements": "eJybzDRxY3J-bm5-npWRgaGlroGxrpHxBABcYgcZ",
231+
"id": "newstyle:2019-10-29"
232+
},
233+
"hashes": [
234+
"4a63b2a190b48dc2bbafb225c5140009",
235+
"cfeccf65e86c6129d81e7fd1df568ce3"
236+
],
237+
"ingest_path": [
238+
{
239+
"version": "22.6.0",
240+
"public_key": "XE7QiyuNlja9PZ7I9qJlwQotzecWrUIN91BAO7Q5R38"
241+
}
242+
],
243+
"key_id": "1646438",
244+
"level": "error",
245+
"logentry": {
246+
"formatted": "Internal error: java.lang.RuntimeException: psss"
247+
},
248+
"logger": "org.eclipse.lsp4j.jsonrpc.RemoteEndpoint",
249+
"metadata": {
250+
"display_title_with_tree_label": false,
251+
"function": "encodeThrowable",
252+
"type": "CompletionException",
253+
"value": "java.lang.RuntimeException: psss"
254+
},
255+
"nodestore_insert": 1657796884.036383,
256+
"received": 1657796882.652077,
257+
"sdk": {
258+
"name": "sentry.java.spring-boot",
259+
"version": "6.2.1",
260+
"packages": [
261+
{
262+
"name": "maven:io.sentry:sentry",
263+
"version": "6.2.1"
264+
},
265+
{
266+
"name": "maven:io.sentry:sentry-spring-boot-starter",
267+
"version": "6.2.1"
268+
}
269+
]
270+
},
271+
"timestamp": 1657796877.875,
272+
"title": "CompletionException: java.lang.RuntimeException: psss",
273+
"type": "error",
274+
"user": {
275+
"id": "49516eb9-2a0d-4a15-bd96-978b68d8d0df"
276+
},
277+
"version": "7",
278+
"location": null
279+
}
280+
```

0 commit comments

Comments
 (0)