Compare commits
801 Commits
v0.56.0-cl
...
dependabot
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
256fdbc704 | ||
|
|
accb77f227 | ||
|
|
e73e1bd078 | ||
|
|
940313d28b | ||
|
|
9815ec7d81 | ||
|
|
a7cad0f1a5 | ||
|
|
a624b4758d | ||
|
|
ee5684b130 | ||
|
|
2f8da5957b | ||
|
|
3f6f77d0e2 | ||
|
|
5bceffbeaa | ||
|
|
9e449e2858 | ||
|
|
b60588a749 | ||
|
|
c322657666 | ||
|
|
a1846c008a | ||
|
|
a6824db622 | ||
|
|
e6f69aa74c | ||
|
|
a9c09f33cb | ||
|
|
9eb2196617 | ||
|
|
131759ec96 | ||
|
|
365a3e250f | ||
|
|
f3a1f3cc20 | ||
|
|
ae509b4ae9 | ||
|
|
43e2be0333 | ||
|
|
20a40b33ce | ||
|
|
a9b07c4b47 | ||
|
|
2a5c7cc0ab | ||
|
|
afb18b8142 | ||
|
|
9a580915e6 | ||
|
|
0944af3d31 | ||
|
|
9338efcefc | ||
|
|
6b9e0ce799 | ||
|
|
d4c3c24849 | ||
|
|
30d935a768 | ||
|
|
073d42c416 | ||
|
|
f11b9644cf | ||
|
|
87922e9577 | ||
|
|
8412727414 | ||
|
|
f0a95503d9 | ||
|
|
16e0fa2eef | ||
|
|
2fa944d254 | ||
|
|
b0d19035a4 | ||
|
|
054dea366e | ||
|
|
aaf0b597dc | ||
|
|
19372c8194 | ||
|
|
eb74adad44 | ||
|
|
d5c04e1342 | ||
|
|
2b9632c8fd | ||
|
|
24920ae903 | ||
|
|
6f096632a2 | ||
|
|
a42eacec4b | ||
|
|
e723399f7f | ||
|
|
48936bed9b | ||
|
|
ee70474cc7 | ||
|
|
c3fa7144ee | ||
|
|
5dd02a5b8e | ||
|
|
c0f01e4cb9 | ||
|
|
fed84cb50a | ||
|
|
80545c4d07 | ||
|
|
0b1faec092 | ||
|
|
ba6f31b1c3 | ||
|
|
eed92978a4 | ||
|
|
41cbd316b5 | ||
|
|
8d7d33393d | ||
|
|
8d143b44b1 | ||
|
|
423aebd6eb | ||
|
|
8d630707af | ||
|
|
a5b52431b7 | ||
|
|
0138d757c8 | ||
|
|
844195b84f | ||
|
|
8ff05b2e8f | ||
|
|
c8c56c544e | ||
|
|
1c43655336 | ||
|
|
c269c8c6b8 | ||
|
|
3142b6cc6d | ||
|
|
58e141685a | ||
|
|
e17f63a50c | ||
|
|
838ef5dcc5 | ||
|
|
e53d3d1269 | ||
|
|
2330420c0d | ||
|
|
65ac277074 | ||
|
|
b7982ca348 | ||
|
|
2748b49a44 | ||
|
|
7345027762 | ||
|
|
68f874e433 | ||
|
|
54a82b1664 | ||
|
|
93dc585145 | ||
|
|
6a143efd2c | ||
|
|
0116eb20ab | ||
|
|
79e9d1b357 | ||
|
|
b89ce82e25 | ||
|
|
b43a198fd8 | ||
|
|
b40ca4baf3 | ||
|
|
8df77c9221 | ||
|
|
f67555576f | ||
|
|
f0a4c37073 | ||
|
|
7972261237 | ||
|
|
3b4a8e5e0f | ||
|
|
5ef3b8ee3f | ||
|
|
597752a4bc | ||
|
|
07a244f569 | ||
|
|
eb9385840f | ||
|
|
30b689037a | ||
|
|
ba33c885d5 | ||
|
|
a4ed9e4d47 | ||
|
|
df5767198c | ||
|
|
81c7f3221a | ||
|
|
2cbd8733a1 | ||
|
|
71d1dfe9bd | ||
|
|
459712d25c | ||
|
|
61de2d414d | ||
|
|
0b7cd4c1a7 | ||
|
|
62c033ccf8 | ||
|
|
e637487984 | ||
|
|
8fc43a00f8 | ||
|
|
031d62ca44 | ||
|
|
8c4c357351 | ||
|
|
d8d8191a32 | ||
|
|
a876c0a744 | ||
|
|
c36f913a90 | ||
|
|
ed597f00c0 | ||
|
|
4957d3ae93 | ||
|
|
8835e3493d | ||
|
|
027a1631ef | ||
|
|
d7a6607a25 | ||
|
|
7a58bc58c9 | ||
|
|
88be23c3e3 | ||
|
|
8f095dfbc9 | ||
|
|
72207691a3 | ||
|
|
8998ca652e | ||
|
|
f4ae5f19ff | ||
|
|
d1ea608671 | ||
|
|
ac7ecac2c1 | ||
|
|
64071165c4 | ||
|
|
9c25a33cd9 | ||
|
|
3100d602c4 | ||
|
|
d80908a1fc | ||
|
|
bc17a10550 | ||
|
|
694c185373 | ||
|
|
02f3dfefb9 | ||
|
|
3515686daf | ||
|
|
c116bf05be | ||
|
|
4842e3b912 | ||
|
|
9bdf194d70 | ||
|
|
88aa29e94c | ||
|
|
1dfebed93a | ||
|
|
b36d2ec4c6 | ||
|
|
089f128020 | ||
|
|
e30f95c340 | ||
|
|
2c87d96d75 | ||
|
|
1f9b13dc35 | ||
|
|
d831c1cb88 | ||
|
|
bc72a0a591 | ||
|
|
ad2b75e3f0 | ||
|
|
efd4e30edf | ||
|
|
f79a5a2db6 | ||
|
|
9d8e46e5b2 | ||
|
|
0320285a25 | ||
|
|
e04e58d8b3 | ||
|
|
fc03303c29 | ||
|
|
95b94a9da7 | ||
|
|
3d3dd98549 | ||
|
|
097e4ca948 | ||
|
|
a64908e571 | ||
|
|
0be9ca272b | ||
|
|
e434e3d142 | ||
|
|
4779300dea | ||
|
|
7a225e0a4f | ||
|
|
53d3de4909 | ||
|
|
4ede88cc1f | ||
|
|
800ca9d329 | ||
|
|
b3fa1ad60e | ||
|
|
5b6b5bf359 | ||
|
|
8a479d42ff | ||
|
|
031e78cb20 | ||
|
|
f992ba9106 | ||
|
|
7118829107 | ||
|
|
5aea442939 | ||
|
|
bf385a9f95 | ||
|
|
c52994ff9e | ||
|
|
a1eb52b034 | ||
|
|
c81760bdf7 | ||
|
|
c26277cd42 | ||
|
|
458bd1171b | ||
|
|
a806ddf74f | ||
|
|
b039dc6fa7 | ||
|
|
08309c380c | ||
|
|
f96a234faa | ||
|
|
de53119257 | ||
|
|
eee3f7d549 | ||
|
|
32d144845a | ||
|
|
e614d6b0e9 | ||
|
|
7f71c0ed2d | ||
|
|
50c1af2da8 | ||
|
|
b46f0c9a7b | ||
|
|
9df23bc1ed | ||
|
|
0035ae0072 | ||
|
|
86a888a6a2 | ||
|
|
9a3c49bce4 | ||
|
|
946a249c85 | ||
|
|
06be0f4330 | ||
|
|
5dba1f3dbb | ||
|
|
a9618886b9 | ||
|
|
d576dec156 | ||
|
|
2c7dfd748f | ||
|
|
6effcbd413 | ||
|
|
1224a03229 | ||
|
|
239ea9d34c | ||
|
|
494d2460a0 | ||
|
|
31fb6727c2 | ||
|
|
1e85981a17 | ||
|
|
527d8a4fc9 | ||
|
|
1b758a088c | ||
|
|
8fbf8155de | ||
|
|
e92e0b6e29 | ||
|
|
1f33928bf9 | ||
|
|
8abba261a8 | ||
|
|
8f2e8cccb4 | ||
|
|
256fbfc180 | ||
|
|
d362f5bce3 | ||
|
|
42f7511e06 | ||
|
|
819428ad09 | ||
|
|
29fa5c3cf0 | ||
|
|
d09b85bea8 | ||
|
|
114a979b14 | ||
|
|
cb69cd91a0 | ||
|
|
2d73f91380 | ||
|
|
296a444bd8 | ||
|
|
36ebde5470 | ||
|
|
509d9c7fe5 | ||
|
|
816cae3aac | ||
|
|
cb2c492618 | ||
|
|
4177b88a4e | ||
|
|
b1e3f03bb5 | ||
|
|
02865cf49e | ||
|
|
c2d038c025 | ||
|
|
52693eb53e | ||
|
|
2f3cee814e | ||
|
|
8a01312967 | ||
|
|
2117075f50 | ||
|
|
7bc52fb92b | ||
|
|
c731a74727 | ||
|
|
e72322e4f7 | ||
|
|
a26cdf1089 | ||
|
|
fe73ca63a0 | ||
|
|
b4a1d72123 | ||
|
|
2e585acc78 | ||
|
|
3661fd878e | ||
|
|
735b565992 | ||
|
|
2a56f79e1d | ||
|
|
4134eb621c | ||
|
|
a3bc290500 | ||
|
|
ae73033826 | ||
|
|
da9f112bee | ||
|
|
e18bda8480 | ||
|
|
bc907b9e61 | ||
|
|
b6858fbfd9 | ||
|
|
858944d273 | ||
|
|
639b9a5a8a | ||
|
|
972a7a9dac | ||
|
|
407654e68e | ||
|
|
3b6952abf2 | ||
|
|
1925b6b4cb | ||
|
|
3d85fd831a | ||
|
|
ecbc4acc78 | ||
|
|
918c8942c4 | ||
|
|
7e1301b8d2 | ||
|
|
eba2049a4d | ||
|
|
2a939e813d | ||
|
|
c3951afdfd | ||
|
|
fbf0e4efc7 | ||
|
|
1f52139ed3 | ||
|
|
e86c7c970a | ||
|
|
8bfca9b564 | ||
|
|
5a107f33f2 | ||
|
|
a6cfb63036 | ||
|
|
042f31116a | ||
|
|
e7587612e7 | ||
|
|
43a1fa53aa | ||
|
|
966f11fd5c | ||
|
|
52f41e0064 | ||
|
|
82d84c041c | ||
|
|
ef635b6b60 | ||
|
|
169bd3f65b | ||
|
|
50ecf768fa | ||
|
|
2d6131c291 | ||
|
|
7359c0a825 | ||
|
|
846b6a9346 | ||
|
|
bcf7bf38fc | ||
|
|
5511c0230b | ||
|
|
7a03a09ac1 | ||
|
|
0d281e694d | ||
|
|
b772a0fb56 | ||
|
|
962e75c6d4 | ||
|
|
42fad23cb0 | ||
|
|
d22ecb9f7c | ||
|
|
02c2b55d5e | ||
|
|
9a75e27ec3 | ||
|
|
1fb3953614 | ||
|
|
37558facbe | ||
|
|
12f65f4a72 | ||
|
|
398760006b | ||
|
|
37323a64cf | ||
|
|
6d8d2e6b11 | ||
|
|
a8e8f31b00 | ||
|
|
c3164912e6 | ||
|
|
b215c6a0ce | ||
|
|
94c2398a08 | ||
|
|
acd9b97ee3 | ||
|
|
c5219ac157 | ||
|
|
2b32ce190f | ||
|
|
c7c7b25651 | ||
|
|
f548afe284 | ||
|
|
586f5255f0 | ||
|
|
62064f136d | ||
|
|
66adc7fbf9 | ||
|
|
f6b2d5a519 | ||
|
|
035999250e | ||
|
|
aecbb71ce4 | ||
|
|
01b6e22bbd | ||
|
|
dc15ee8176 | ||
|
|
e414215786 | ||
|
|
5fe04078e5 | ||
|
|
cf95b15ba1 | ||
|
|
3b550c485d | ||
|
|
784dccf298 | ||
|
|
aa26dc77af | ||
|
|
e33a0fdd47 | ||
|
|
c8032f771e | ||
|
|
536656281d | ||
|
|
c6fda99b9b | ||
|
|
bbf64a7b52 | ||
|
|
5783f1555f | ||
|
|
93a8f97355 | ||
|
|
a84e462a65 | ||
|
|
d910d99689 | ||
|
|
e542e96031 | ||
|
|
3849ca1ecc | ||
|
|
d1e7cc128f | ||
|
|
ffd72cf406 | ||
|
|
6dfea14219 | ||
|
|
f2be856f63 | ||
|
|
f04589a0b2 | ||
|
|
1378590429 | ||
|
|
88084af4d4 | ||
|
|
d0eefa0cf2 | ||
|
|
cc9eb32c50 | ||
|
|
70169986be | ||
|
|
fb3b70b729 | ||
|
|
36f91d1993 | ||
|
|
333f90d8ac | ||
|
|
ea83a7e62d | ||
|
|
42a5d71d81 | ||
|
|
08e1fd3ca5 | ||
|
|
8cb8beb63f | ||
|
|
35c61045c4 | ||
|
|
7c85befc17 | ||
|
|
813ca8bc23 | ||
|
|
98cdbcd711 | ||
|
|
61a6c21edb | ||
|
|
8d6731c7ba | ||
|
|
6dc7a76853 | ||
|
|
cc3d78cd71 | ||
|
|
bd0c4beeee | ||
|
|
e83e691ef5 | ||
|
|
c30c882aae | ||
|
|
001122db2c | ||
|
|
b544a54c40 | ||
|
|
af6b54aeb4 | ||
|
|
1e61e6c2f6 | ||
|
|
390b04c015 | ||
|
|
c56345e1db | ||
|
|
7f25674640 | ||
|
|
df5ab64c83 | ||
|
|
726f2b0fa2 | ||
|
|
4a0b0aafbd | ||
|
|
837f434fe9 | ||
|
|
0baf0e9453 | ||
|
|
403043e076 | ||
|
|
7730f76128 | ||
|
|
6e3ffd555d | ||
|
|
c565c2b865 | ||
|
|
4ec1e66c7e | ||
|
|
89541862cc | ||
|
|
610f4d43e7 | ||
|
|
044a124cc1 | ||
|
|
0cf9003e3a | ||
|
|
644135a933 | ||
|
|
b465f74e4a | ||
|
|
e00e365964 | ||
|
|
5c45e1f7b3 | ||
|
|
16e61b45ac | ||
|
|
fdcdbf021a | ||
|
|
c92ef53e9c | ||
|
|
268f283785 | ||
|
|
c574adc634 | ||
|
|
939ab5270e | ||
|
|
42525b6067 | ||
|
|
c66cd3ce4e | ||
|
|
e9618d64bc | ||
|
|
8e11a988be | ||
|
|
92299e1b08 | ||
|
|
bab8c8274c | ||
|
|
265c67e5bd | ||
|
|
efc8c95d59 | ||
|
|
5708079c3c | ||
|
|
dbe78e55a9 | ||
|
|
a60371fb80 | ||
|
|
d5b847c091 | ||
|
|
c106f1c9a9 | ||
|
|
d6bfd95302 | ||
|
|
68ee677630 | ||
|
|
3ff862b483 | ||
|
|
f91badbce9 | ||
|
|
2ead4fbb66 | ||
|
|
56b17bcfef | ||
|
|
5839b65f7a | ||
|
|
3787c5ca24 | ||
|
|
458cd28cc2 | ||
|
|
64a4606275 | ||
|
|
505757b971 | ||
|
|
80740f646c | ||
|
|
e92d055c30 | ||
|
|
5c546e8efd | ||
|
|
ecd50f7232 | ||
|
|
15f85a645f | ||
|
|
366ca3bb3e | ||
|
|
43b0cdbb6a | ||
|
|
4967696da8 | ||
|
|
c5938b6c10 | ||
|
|
9feee6ff46 | ||
|
|
d48cdbfc4a | ||
|
|
dad72dd295 | ||
|
|
28d27bc5c1 | ||
|
|
3e675bb9a5 | ||
|
|
05c9dd68dd | ||
|
|
03fb388cd1 | ||
|
|
196b17dd1e | ||
|
|
93e9d15004 | ||
|
|
f11161ddb8 | ||
|
|
50db3cc39f | ||
|
|
6e27df9dcb | ||
|
|
7f6bad67d5 | ||
|
|
825d2dfcbb | ||
|
|
9f6419c2f8 | ||
|
|
421879cf7a | ||
|
|
00abadd429 | ||
|
|
14096f8d53 | ||
|
|
d2aa1cf06e | ||
|
|
838192cf5c | ||
|
|
5dfe245f2d | ||
|
|
53b86e4b5c | ||
|
|
5d9a2571df | ||
|
|
bef6cc945a | ||
|
|
2c2e248c95 | ||
|
|
2f62a9d36d | ||
|
|
04778b9641 | ||
|
|
26fe5e49e7 | ||
|
|
accafbc3ec | ||
|
|
8e7c78e1b1 | ||
|
|
53ebd39f41 | ||
|
|
b36ef944cc | ||
|
|
fa90fad373 | ||
|
|
77420b9d3a | ||
|
|
cecc57e72d | ||
|
|
512adc6471 | ||
|
|
42fefc65be | ||
|
|
dcc659907a | ||
|
|
b90ed375c2 | ||
|
|
a8a3bd3f7d | ||
|
|
7405bfbbee | ||
|
|
67e822e23e | ||
|
|
60dc479a19 | ||
|
|
85cf4f4e2e | ||
|
|
83aa48c721 | ||
|
|
823f84f857 | ||
|
|
8a4d45084d | ||
|
|
5bc6c33899 | ||
|
|
83f6dea2db | ||
|
|
7031c866e8 | ||
|
|
46bc7c7a21 | ||
|
|
6d9741c3a4 | ||
|
|
610a8ec704 | ||
|
|
cd9f27ab08 | ||
|
|
14fbb1fcda | ||
|
|
96da21df05 | ||
|
|
8608f02263 | ||
|
|
2701ae5c34 | ||
|
|
951593b0a3 | ||
|
|
e6766023dd | ||
|
|
bef5b96c5c | ||
|
|
b29359dee0 | ||
|
|
9a1cd65b73 | ||
|
|
8ab0c066d6 | ||
|
|
b333aa3775 | ||
|
|
8a3319cdf5 | ||
|
|
d09c4d947e | ||
|
|
2508e6f9f1 | ||
|
|
1b8213653a | ||
|
|
b499b10333 | ||
|
|
b35b975798 | ||
|
|
715f8a2363 | ||
|
|
8d1c4491b7 | ||
|
|
e3caa6a8f5 | ||
|
|
a1059ed949 | ||
|
|
8c46de8eac | ||
|
|
2b5a0ec496 | ||
|
|
a9440c010c | ||
|
|
f9e7eff357 | ||
|
|
0fbfb6b22b | ||
|
|
b25df66381 | ||
|
|
32fa5a403c | ||
|
|
f9d4cf19e9 | ||
|
|
81775c7d55 | ||
|
|
8d2666004b | ||
|
|
51baf7f8d3 | ||
|
|
31a2926375 | ||
|
|
8c6225185d | ||
|
|
d4458d65ad | ||
|
|
02d8fdb212 | ||
|
|
47d8c9e3e7 | ||
|
|
a383c708e3 | ||
|
|
99367be850 | ||
|
|
73bcc2af46 | ||
|
|
43f856c41b | ||
|
|
6384b25af3 | ||
|
|
507c0600cd | ||
|
|
3d092ec2ae | ||
|
|
2b8a610a07 | ||
|
|
f7f8bf1867 | ||
|
|
813cd845f4 | ||
|
|
6aee991633 | ||
|
|
2bfd31841e | ||
|
|
a320a16556 | ||
|
|
7cd8442e6e | ||
|
|
486632b64e | ||
|
|
328d955a74 | ||
|
|
a3e57a1829 | ||
|
|
24ab18d988 | ||
|
|
2e4956c2f7 | ||
|
|
b85f7921f4 | ||
|
|
0c2a15d86f | ||
|
|
afbba1ed44 | ||
|
|
20f748f9c4 | ||
|
|
96b5e0920f | ||
|
|
7fe4f8cc56 | ||
|
|
ed6abe5a95 | ||
|
|
a6968d452c | ||
|
|
0c5db1937e | ||
|
|
67058b2a17 | ||
|
|
e46d969143 | ||
|
|
e4505693b0 | ||
|
|
2dad9a3093 | ||
|
|
7b6bd83e9a | ||
|
|
d43adc24ef | ||
|
|
5044861773 | ||
|
|
71d1e12be7 | ||
|
|
5a70123b06 | ||
|
|
f410df846a | ||
|
|
d7bd72e2aa | ||
|
|
20e64b5102 | ||
|
|
0b03ff07f1 | ||
|
|
c01060ccf7 | ||
|
|
57c2326908 | ||
|
|
649560265e | ||
|
|
c8d0f7638e | ||
|
|
25484caa4c | ||
|
|
9ccc686c63 | ||
|
|
3ad6ff73df | ||
|
|
c93cf1ce95 | ||
|
|
a9ced66258 | ||
|
|
98a350692b | ||
|
|
d93f72f18d | ||
|
|
a59e7b9dfb | ||
|
|
91bbeaf175 | ||
|
|
22e61e1605 | ||
|
|
656d1c2b1c | ||
|
|
493ae4fd07 | ||
|
|
cd1ec561b1 | ||
|
|
0acf39a532 | ||
|
|
d859301d30 | ||
|
|
35f4eaa23b | ||
|
|
07c24bcdf3 | ||
|
|
77c5f17dce | ||
|
|
a11aadb712 | ||
|
|
bc9c7b5f1d | ||
|
|
1bba932d08 | ||
|
|
c1478c4e54 | ||
|
|
371224a64a | ||
|
|
504bc0d541 | ||
|
|
2faa0c6d4f | ||
|
|
969ac5028e | ||
|
|
3f7adeb040 | ||
|
|
323da3494b | ||
|
|
01fda51959 | ||
|
|
85ac21f253 | ||
|
|
fd9e9f0fb3 | ||
|
|
d5523fc092 | ||
|
|
2ec641b99e | ||
|
|
d1503f1418 | ||
|
|
e974e9d47f | ||
|
|
577a169508 | ||
|
|
939e2a3570 | ||
|
|
b64326070c | ||
|
|
63872983c6 | ||
|
|
eb6670980a | ||
|
|
831540eaf0 | ||
|
|
48f3b9cacb | ||
|
|
eaf8571fe9 | ||
|
|
22c10f9479 | ||
|
|
e748fb0655 | ||
|
|
fdc54a62a9 | ||
|
|
abe0ab69b0 | ||
|
|
e623c92615 | ||
|
|
dc5917db01 | ||
|
|
d6a7f0b6f4 | ||
|
|
471803115e | ||
|
|
8403a3362d | ||
|
|
64d46bc855 | ||
|
|
c9fee27604 | ||
|
|
f1b6b2d3d8 | ||
|
|
468f056530 | ||
|
|
7086470ce2 | ||
|
|
352296c6cd | ||
|
|
975307a8b8 | ||
|
|
12377be809 | ||
|
|
9d90b8d19c | ||
|
|
5005923ef4 | ||
|
|
db4338be42 | ||
|
|
c7d0598ec0 | ||
|
|
4978fb9599 | ||
|
|
7b18c3ba06 | ||
|
|
92cdb36879 | ||
|
|
580f0b816e | ||
|
|
b770fc2457 | ||
|
|
c177230cce | ||
|
|
2112047a02 | ||
|
|
03c193d5a1 | ||
|
|
b83b295318 | ||
|
|
fbe75cd057 | ||
|
|
860145fb1d | ||
|
|
2fe75e74cd | ||
|
|
8e19c346a4 | ||
|
|
1b33efe4cc | ||
|
|
2642338672 | ||
|
|
845dc00568 | ||
|
|
a1090bfdc5 | ||
|
|
44f41c55f9 | ||
|
|
42ac9ab6fe | ||
|
|
5c02250aae | ||
|
|
c49a9dac1a | ||
|
|
abc2ec2155 | ||
|
|
4dc5615d2f | ||
|
|
6c350f30aa | ||
|
|
6664e1bc02 | ||
|
|
438cbcef87 | ||
|
|
829e1f0920 | ||
|
|
68d25a8989 | ||
|
|
cc90321ac0 | ||
|
|
b10c22223b | ||
|
|
bdcae62bf9 | ||
|
|
cdde369748 | ||
|
|
4e26189778 | ||
|
|
523cbcd6fc | ||
|
|
eeadc021e1 | ||
|
|
952ab58023 | ||
|
|
3ca2fff5c5 | ||
|
|
ef3a9adb48 | ||
|
|
975f141604 | ||
|
|
c206f4fa5c | ||
|
|
e88e24e434 | ||
|
|
94e0423479 | ||
|
|
5891fbc229 | ||
|
|
8137ec54ba | ||
|
|
f7b80524a5 | ||
|
|
4be0508dd2 | ||
|
|
a31c4b8339 | ||
|
|
d7846338ce | ||
|
|
5dac1ad20a | ||
|
|
8d704c331c | ||
|
|
f8e47496fa | ||
|
|
6fef9d9676 | ||
|
|
190767fd0a | ||
|
|
1e78786cae | ||
|
|
6448fb17e7 | ||
|
|
f2e33d7ca9 | ||
|
|
6c7167a224 | ||
|
|
00421235b0 | ||
|
|
0e2b67059b | ||
|
|
910c44cefc | ||
|
|
8bad036423 | ||
|
|
a21830132f | ||
|
|
9419f56e95 | ||
|
|
347868c18b | ||
|
|
17e20e7f41 | ||
|
|
2b0da82f94 | ||
|
|
911362cecf | ||
|
|
481f9620d3 | ||
|
|
e5be431f18 | ||
|
|
503ed45a99 | ||
|
|
28818fbaac | ||
|
|
c0e40614bf | ||
|
|
2d732ae4a9 | ||
|
|
8466e31e02 | ||
|
|
efdaf7ee43 | ||
|
|
0dec94a5c6 | ||
|
|
204728ff60 | ||
|
|
e51f4d986d | ||
|
|
337a941d0d | ||
|
|
fc4b55cb34 | ||
|
|
96cb8053df | ||
|
|
5651d69485 | ||
|
|
a6e492880d | ||
|
|
80b3c3e256 | ||
|
|
0806420dd7 | ||
|
|
18e240e3d1 | ||
|
|
d0965a24c5 | ||
|
|
7ed689693f | ||
|
|
90ae55264a | ||
|
|
bf4c792cdb | ||
|
|
dd097821d1 | ||
|
|
701b8803ac | ||
|
|
2728ddd255 | ||
|
|
5187ed58a0 | ||
|
|
2180118094 | ||
|
|
ecae842fa1 | ||
|
|
291b3ba357 | ||
|
|
78d1e19e60 | ||
|
|
fa9e89bfe7 | ||
|
|
16f49a1d25 | ||
|
|
c95c0f9a15 | ||
|
|
5588c7dd3f | ||
|
|
679b5db5a2 | ||
|
|
64feff3539 | ||
|
|
1720d616f6 | ||
|
|
155a2ea557 | ||
|
|
d5c38ed0a4 | ||
|
|
b70d50f2b3 | ||
|
|
728f699051 | ||
|
|
3bbbc759d3 | ||
|
|
2230ca1740 | ||
|
|
440fd4e02b | ||
|
|
78a924d378 | ||
|
|
b03fadc2ec | ||
|
|
4b79d3b785 | ||
|
|
a24fb5d84f | ||
|
|
137059ded6 | ||
|
|
f1ce82ac25 | ||
|
|
4aeed392d7 | ||
|
|
4356ddae8c | ||
|
|
76e7de3aed | ||
|
|
ae5e63cc64 | ||
|
|
5ef05891ce | ||
|
|
c452e23b18 | ||
|
|
69aab87d72 | ||
|
|
a60674cf1b | ||
|
|
022b9226a7 | ||
|
|
36e2404814 | ||
|
|
2eb3f6cb06 | ||
|
|
98cbdf570f | ||
|
|
d380894c35 | ||
|
|
ea0263cc73 | ||
|
|
f38a1d9f1c | ||
|
|
9390a815a8 | ||
|
|
4f76e13dbe | ||
|
|
6a4643558c | ||
|
|
a98c8db949 | ||
|
|
5ba9c9d48c | ||
|
|
e1ca71dcea | ||
|
|
266ed58908 | ||
|
|
c7bd7566c5 | ||
|
|
f4fbe62169 | ||
|
|
87499d1ead | ||
|
|
5fa8686fcf | ||
|
|
dc2db524c7 | ||
|
|
b3545b767a | ||
|
|
6685482ea6 | ||
|
|
540a2c6712 | ||
|
|
08f3b089f4 | ||
|
|
1d8e5b6c0f | ||
|
|
0dcded59e5 | ||
|
|
bfb63ca8c4 | ||
|
|
71e24483dd | ||
|
|
317c41a166 | ||
|
|
ed4613cb1b | ||
|
|
6c06fea1aa | ||
|
|
6bc2f9125c | ||
|
|
262beef8f9 | ||
|
|
43cc6dea92 | ||
|
|
6684640abe | ||
|
|
0a146910d6 | ||
|
|
690ed0f7f1 | ||
|
|
5bcf7de440 | ||
|
|
703983a5f9 | ||
|
|
766a2123c5 | ||
|
|
a476c68f7e | ||
|
|
fc15aa6f1c | ||
|
|
4192fd573d | ||
|
|
ca13d80205 | ||
|
|
8d84ce8f06 | ||
|
|
09ea7b9eb5 |
73
.devenv/docker/clickhouse/compose.yaml
Normal file
73
.devenv/docker/clickhouse/compose.yaml
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
services:
|
||||||
|
|
||||||
|
clickhouse:
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
container_name: clickhouse
|
||||||
|
volumes:
|
||||||
|
- ${PWD}/fs/etc/clickhouse-server/config.d/config.xml:/etc/clickhouse-server/config.d/config.xml
|
||||||
|
- ${PWD}/fs/etc/clickhouse-server/users.d/users.xml:/etc/clickhouse-server/users.d/users.xml
|
||||||
|
- ${PWD}/fs/tmp/var/lib/clickhouse/:/var/lib/clickhouse/
|
||||||
|
- ${PWD}/fs/tmp/var/lib/clickhouse/user_scripts/:/var/lib/clickhouse/user_scripts/
|
||||||
|
ports:
|
||||||
|
- '127.0.0.1:8123:8123'
|
||||||
|
- '127.0.0.1:9000:9000'
|
||||||
|
tty: true
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- 0.0.0.0:8123/ping
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
depends_on:
|
||||||
|
- zookeeper
|
||||||
|
|
||||||
|
zookeeper:
|
||||||
|
image: bitnami/zookeeper:3.7.1
|
||||||
|
container_name: zookeeper
|
||||||
|
volumes:
|
||||||
|
- ${PWD}/fs/tmp/zookeeper:/bitnami/zookeeper
|
||||||
|
ports:
|
||||||
|
- '127.0.0.1:2181:2181'
|
||||||
|
environment:
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
|
||||||
|
schema-migrator-sync:
|
||||||
|
image: signoz/signoz-schema-migrator:0.111.29
|
||||||
|
container_name: schema-migrator-sync
|
||||||
|
command:
|
||||||
|
- sync
|
||||||
|
- --cluster-name=cluster
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --replication=true
|
||||||
|
- --up=
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: on-failure
|
||||||
|
|
||||||
|
schema-migrator-async:
|
||||||
|
image: signoz/signoz-schema-migrator:0.111.29
|
||||||
|
container_name: schema-migrator-async
|
||||||
|
command:
|
||||||
|
- async
|
||||||
|
- --cluster-name=cluster
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --replication=true
|
||||||
|
- --up=
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
restart: on-failure
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
<clickhouse replace="true">
|
||||||
|
<logger>
|
||||||
|
<level>information</level>
|
||||||
|
<formatting>
|
||||||
|
<type>json</type>
|
||||||
|
</formatting>
|
||||||
|
<log>/var/log/clickhouse-server/clickhouse-server.log</log>
|
||||||
|
<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>
|
||||||
|
<size>1000M</size>
|
||||||
|
<count>3</count>
|
||||||
|
</logger>
|
||||||
|
<display_name>cluster</display_name>
|
||||||
|
<listen_host>0.0.0.0</listen_host>
|
||||||
|
<http_port>8123</http_port>
|
||||||
|
<tcp_port>9000</tcp_port>
|
||||||
|
<user_directories>
|
||||||
|
<users_xml>
|
||||||
|
<path>users.xml</path>
|
||||||
|
</users_xml>
|
||||||
|
<local_directory>
|
||||||
|
<path>/var/lib/clickhouse/access/</path>
|
||||||
|
</local_directory>
|
||||||
|
</user_directories>
|
||||||
|
<distributed_ddl>
|
||||||
|
<path>/clickhouse/task_queue/ddl</path>
|
||||||
|
</distributed_ddl>
|
||||||
|
<remote_servers>
|
||||||
|
<cluster>
|
||||||
|
<shard>
|
||||||
|
<replica>
|
||||||
|
<host>clickhouse</host>
|
||||||
|
<port>9000</port>
|
||||||
|
</replica>
|
||||||
|
</shard>
|
||||||
|
</cluster>
|
||||||
|
</remote_servers>
|
||||||
|
<zookeeper>
|
||||||
|
<node>
|
||||||
|
<host>zookeeper</host>
|
||||||
|
<port>2181</port>
|
||||||
|
</node>
|
||||||
|
</zookeeper>
|
||||||
|
<macros>
|
||||||
|
<shard>01</shard>
|
||||||
|
<replica>01</replica>
|
||||||
|
</macros>
|
||||||
|
</clickhouse>
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<clickhouse replace="true">
|
||||||
|
<profiles>
|
||||||
|
<default>
|
||||||
|
<max_memory_usage>10000000000</max_memory_usage>
|
||||||
|
<use_uncompressed_cache>0</use_uncompressed_cache>
|
||||||
|
<load_balancing>in_order</load_balancing>
|
||||||
|
<log_queries>1</log_queries>
|
||||||
|
</default>
|
||||||
|
</profiles>
|
||||||
|
<users>
|
||||||
|
<default>
|
||||||
|
<profile>default</profile>
|
||||||
|
<networks>
|
||||||
|
<ip>::/0</ip>
|
||||||
|
</networks>
|
||||||
|
<quota>default</quota>
|
||||||
|
<access_management>1</access_management>
|
||||||
|
<named_collection_control>1</named_collection_control>
|
||||||
|
<show_named_collections>1</show_named_collections>
|
||||||
|
<show_named_collections_secrets>1</show_named_collections_secrets>
|
||||||
|
</default>
|
||||||
|
</users>
|
||||||
|
<quotas>
|
||||||
|
<default>
|
||||||
|
<interval>
|
||||||
|
<duration>3600</duration>
|
||||||
|
<queries>0</queries>
|
||||||
|
<errors>0</errors>
|
||||||
|
<result_rows>0</result_rows>
|
||||||
|
<read_rows>0</read_rows>
|
||||||
|
<execution_time>0</execution_time>
|
||||||
|
</interval>
|
||||||
|
</default>
|
||||||
|
</quotas>
|
||||||
|
</clickhouse>
|
||||||
27
.devenv/docker/postgres/compose.yaml
Normal file
27
.devenv/docker/postgres/compose.yaml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
services:
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
image: postgres:15
|
||||||
|
container_name: postgres
|
||||||
|
environment:
|
||||||
|
POSTGRES_DB: signoz
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: password
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
[
|
||||||
|
"CMD",
|
||||||
|
"pg_isready",
|
||||||
|
"-d",
|
||||||
|
"signoz",
|
||||||
|
"-U",
|
||||||
|
"postgres"
|
||||||
|
]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 30s
|
||||||
|
retries: 3
|
||||||
|
restart: on-failure
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:5432:5432/tcp"
|
||||||
|
volumes:
|
||||||
|
- ${PWD}/fs/tmp/var/lib/postgresql/data/:/var/lib/postgresql/data/
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
.git
|
.git
|
||||||
.github
|
.github
|
||||||
.vscode
|
.vscode
|
||||||
|
.devenv
|
||||||
README.md
|
README.md
|
||||||
deploy
|
deploy
|
||||||
sample-apps
|
sample-apps
|
||||||
|
|
||||||
|
# frontend
|
||||||
|
node_modules
|
||||||
5
.github/CODEOWNERS
vendored
5
.github/CODEOWNERS
vendored
@@ -6,5 +6,8 @@
|
|||||||
/frontend/src/container/MetricsApplication @srikanthccv
|
/frontend/src/container/MetricsApplication @srikanthccv
|
||||||
/frontend/src/container/NewWidget/RightContainer/types.ts @srikanthccv
|
/frontend/src/container/NewWidget/RightContainer/types.ts @srikanthccv
|
||||||
/deploy/ @SigNoz/devops
|
/deploy/ @SigNoz/devops
|
||||||
/sample-apps/ @SigNoz/devops
|
|
||||||
.github @SigNoz/devops
|
.github @SigNoz/devops
|
||||||
|
/pkg/config/ @grandwizard28
|
||||||
|
/pkg/errors/ @grandwizard28
|
||||||
|
/pkg/factory/ @grandwizard28
|
||||||
|
/pkg/types/ @grandwizard28
|
||||||
|
|||||||
42
.github/workflows/README.md
vendored
42
.github/workflows/README.md
vendored
@@ -1,42 +0,0 @@
|
|||||||
# Github actions
|
|
||||||
|
|
||||||
## Testing the UI manually on each PR
|
|
||||||
|
|
||||||
First we need to make sure the UI is ready
|
|
||||||
* Check the `Start tunnel` step in `e2e-k8s/deploy-on-k3s-cluster` job and make sure you see `your url is: https://pull-<number>-signoz.loca.lt`
|
|
||||||
* This job will run until the PR is merged or closed to keep the local tunneling alive
|
|
||||||
- github will cancel this job if the PR wasn't merged after 6h
|
|
||||||
- if the job was cancel, go to the action and press `Re-run all jobs`
|
|
||||||
|
|
||||||
Now you can open your browser at https://pull-<number>-signoz.loca.lt and check the UI.
|
|
||||||
|
|
||||||
## Environment Variables
|
|
||||||
|
|
||||||
To run GitHub workflow, a few environment variables needs to add in GitHub secrets
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th> Variables </th>
|
|
||||||
<th> Description </th>
|
|
||||||
<th> Example </th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td> REPONAME </td>
|
|
||||||
<td> Provide the DockerHub user/organisation name of the image. </td>
|
|
||||||
<td> signoz</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td> DOCKERHUB_USERNAME </td>
|
|
||||||
<td> Docker hub username </td>
|
|
||||||
<td> signoz</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td> DOCKERHUB_TOKEN </td>
|
|
||||||
<td> Docker hub password/token with push permission </td>
|
|
||||||
<td> **** </td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td> SONAR_TOKEN </td>
|
|
||||||
<td> <a href="https://sonarcloud.io">SonarCloud</a> token </td>
|
|
||||||
<td> **** </td>
|
|
||||||
</tr>
|
|
||||||
81
.github/workflows/build-community.yaml
vendored
Normal file
81
.github/workflows/build-community.yaml
vendored
Normal file
@@ -0,0 +1,81 @@
|
|||||||
|
name: build-community
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||||
|
- 'v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+'
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
env:
|
||||||
|
PRIMUS_HOME: .primus
|
||||||
|
MAKE: make --no-print-directory --makefile=.primus/src/make/main.mk
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
prepare:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
version: ${{ steps.build-info.outputs.version }}
|
||||||
|
hash: ${{ steps.build-info.outputs.hash }}
|
||||||
|
time: ${{ steps.build-info.outputs.time }}
|
||||||
|
branch: ${{ steps.build-info.outputs.branch }}
|
||||||
|
steps:
|
||||||
|
- name: self-checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- id: token
|
||||||
|
name: github-token-gen
|
||||||
|
uses: actions/create-github-app-token@v1
|
||||||
|
with:
|
||||||
|
app-id: ${{ secrets.PRIMUS_APP_ID }}
|
||||||
|
private-key: ${{ secrets.PRIMUS_PRIVATE_KEY }}
|
||||||
|
owner: ${{ github.repository_owner }}
|
||||||
|
- name: primus-checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: signoz/primus
|
||||||
|
ref: main
|
||||||
|
path: .primus
|
||||||
|
token: ${{ steps.token.outputs.token }}
|
||||||
|
- name: build-info
|
||||||
|
run: |
|
||||||
|
echo "version=$($MAKE info-version)" >> $GITHUB_OUTPUT
|
||||||
|
echo "hash=$($MAKE info-commit-short)" >> $GITHUB_OUTPUT
|
||||||
|
echo "time=$($MAKE info-timestamp)" >> $GITHUB_OUTPUT
|
||||||
|
echo "branch=$($MAKE info-branch)" >> $GITHUB_OUTPUT
|
||||||
|
js-build:
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/js-build.yaml@main
|
||||||
|
needs: prepare
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
JS_SRC: frontend
|
||||||
|
JS_OUTPUT_ARTIFACT_CACHE_KEY: community-jsbuild-${{ github.sha }}
|
||||||
|
JS_OUTPUT_ARTIFACT_PATH: frontend/build
|
||||||
|
DOCKER_BUILD: false
|
||||||
|
DOCKER_MANIFEST: false
|
||||||
|
go-build:
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/go-build.yaml@main
|
||||||
|
needs: [prepare, js-build]
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
GO_NAME: signoz-community
|
||||||
|
GO_INPUT_ARTIFACT_CACHE_KEY: community-jsbuild-${{ github.sha }}
|
||||||
|
GO_INPUT_ARTIFACT_PATH: frontend/build
|
||||||
|
GO_BUILD_CONTEXT: ./pkg/query-service
|
||||||
|
GO_BUILD_FLAGS: >-
|
||||||
|
-tags timetzdata
|
||||||
|
-ldflags='-linkmode external -extldflags \"-static\" -s -w
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.version=${{ needs.prepare.outputs.version }}
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.variant=community
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.hash=${{ needs.prepare.outputs.hash }}
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.time=${{ needs.prepare.outputs.time }}
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.branch=${{ needs.prepare.outputs.branch }}'
|
||||||
|
GO_CGO_ENABLED: 1
|
||||||
|
DOCKER_BASE_IMAGES: '{"alpine": "alpine:3.20.3"}'
|
||||||
|
DOCKER_DOCKERFILE_PATH: ./pkg/query-service/Dockerfile.multi-arch
|
||||||
|
DOCKER_MANIFEST: true
|
||||||
|
DOCKER_PROVIDERS: dockerhub
|
||||||
113
.github/workflows/build-enterprise.yaml
vendored
Normal file
113
.github/workflows/build-enterprise.yaml
vendored
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
name: build-enterprise
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- v*
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
env:
|
||||||
|
PRIMUS_HOME: .primus
|
||||||
|
MAKE: make --no-print-directory --makefile=.primus/src/make/main.mk
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
prepare:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
docker_providers: ${{ steps.set-docker-providers.outputs.providers }}
|
||||||
|
version: ${{ steps.build-info.outputs.version }}
|
||||||
|
hash: ${{ steps.build-info.outputs.hash }}
|
||||||
|
time: ${{ steps.build-info.outputs.time }}
|
||||||
|
branch: ${{ steps.build-info.outputs.branch }}
|
||||||
|
steps:
|
||||||
|
- name: self-checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- id: token
|
||||||
|
name: github-token-gen
|
||||||
|
uses: actions/create-github-app-token@v1
|
||||||
|
with:
|
||||||
|
app-id: ${{ secrets.PRIMUS_APP_ID }}
|
||||||
|
private-key: ${{ secrets.PRIMUS_PRIVATE_KEY }}
|
||||||
|
owner: ${{ github.repository_owner }}
|
||||||
|
- name: primus-checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: signoz/primus
|
||||||
|
ref: main
|
||||||
|
path: .primus
|
||||||
|
token: ${{ steps.token.outputs.token }}
|
||||||
|
- name: build-info
|
||||||
|
id: build-info
|
||||||
|
run: |
|
||||||
|
echo "version=$($MAKE info-version)" >> $GITHUB_OUTPUT
|
||||||
|
echo "hash=$($MAKE info-commit-short)" >> $GITHUB_OUTPUT
|
||||||
|
echo "time=$($MAKE info-timestamp)" >> $GITHUB_OUTPUT
|
||||||
|
echo "branch=$($MAKE info-branch)" >> $GITHUB_OUTPUT
|
||||||
|
- name: set-docker-providers
|
||||||
|
id: set-docker-providers
|
||||||
|
run: |
|
||||||
|
if [[ ${{ github.event.ref }} =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+$ || ${{ github.event.ref }} =~ ^refs/tags/v[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+$ ]]; then
|
||||||
|
echo "providers=dockerhub gcp" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
echo "providers=gcp" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
- name: create-dotenv
|
||||||
|
run: |
|
||||||
|
mkdir -p frontend
|
||||||
|
echo 'CI=1' > frontend/.env
|
||||||
|
echo 'INTERCOM_APP_ID="${{ secrets.INTERCOM_APP_ID }}"' >> frontend/.env
|
||||||
|
echo 'SEGMENT_ID="${{ secrets.SEGMENT_ID }}"' >> frontend/.env
|
||||||
|
echo 'SENTRY_AUTH_TOKEN="${{ secrets.SENTRY_AUTH_TOKEN }}"' >> frontend/.env
|
||||||
|
echo 'SENTRY_ORG="${{ secrets.SENTRY_ORG }}"' >> frontend/.env
|
||||||
|
echo 'SENTRY_PROJECT_ID="${{ secrets.SENTRY_PROJECT_ID }}"' >> frontend/.env
|
||||||
|
echo 'SENTRY_DSN="${{ secrets.SENTRY_DSN }}"' >> frontend/.env
|
||||||
|
echo 'TUNNEL_URL="${{ secrets.TUNNEL_URL }}"' >> frontend/.env
|
||||||
|
echo 'TUNNEL_DOMAIN="${{ secrets.TUNNEL_DOMAIN }}"' >> frontend/.env
|
||||||
|
echo 'POSTHOG_KEY="${{ secrets.POSTHOG_KEY }}"' >> frontend/.env
|
||||||
|
echo 'CUSTOMERIO_ID="${{ secrets.CUSTOMERIO_ID }}"' >> frontend/.env
|
||||||
|
echo 'CUSTOMERIO_SITE_ID="${{ secrets.CUSTOMERIO_SITE_ID }}"' >> frontend/.env
|
||||||
|
- name: cache-dotenv
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: frontend/.env
|
||||||
|
key: enterprise-dotenv-${{ github.sha }}
|
||||||
|
js-build:
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/js-build.yaml@main
|
||||||
|
needs: prepare
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
JS_SRC: frontend
|
||||||
|
JS_INPUT_ARTIFACT_CACHE_KEY: enterprise-dotenv-${{ github.sha }}
|
||||||
|
JS_INPUT_ARTIFACT_PATH: frontend/.env
|
||||||
|
JS_OUTPUT_ARTIFACT_CACHE_KEY: enterprise-jsbuild-${{ github.sha }}
|
||||||
|
JS_OUTPUT_ARTIFACT_PATH: frontend/build
|
||||||
|
DOCKER_BUILD: false
|
||||||
|
DOCKER_MANIFEST: false
|
||||||
|
go-build:
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/go-build.yaml@main
|
||||||
|
needs: [prepare, js-build]
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
GO_INPUT_ARTIFACT_CACHE_KEY: enterprise-jsbuild-${{ github.sha }}
|
||||||
|
GO_INPUT_ARTIFACT_PATH: frontend/build
|
||||||
|
GO_BUILD_CONTEXT: ./ee/query-service
|
||||||
|
GO_BUILD_FLAGS: >-
|
||||||
|
-tags timetzdata
|
||||||
|
-ldflags='-linkmode external -extldflags \"-static\" -s -w
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.version=${{ needs.prepare.outputs.version }}
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.variant=enterprise
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.hash=${{ needs.prepare.outputs.hash }}
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.time=${{ needs.prepare.outputs.time }}
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.branch=${{ needs.prepare.outputs.branch }}
|
||||||
|
-X github.com/SigNoz/signoz/ee/zeus.url=https://api.signoz.cloud
|
||||||
|
-X github.com/SigNoz/signoz/ee/zeus.deprecatedURL=https://license.signoz.io'
|
||||||
|
GO_CGO_ENABLED: 1
|
||||||
|
DOCKER_BASE_IMAGES: '{"alpine": "alpine:3.20.3"}'
|
||||||
|
DOCKER_DOCKERFILE_PATH: ./ee/query-service/Dockerfile.multi-arch
|
||||||
|
DOCKER_MANIFEST: true
|
||||||
|
DOCKER_PROVIDERS: ${{ needs.prepare.outputs.docker_providers }}
|
||||||
122
.github/workflows/build-staging.yaml
vendored
Normal file
122
.github/workflows/build-staging.yaml
vendored
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
name: build-staging
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
types: [labeled]
|
||||||
|
|
||||||
|
defaults:
|
||||||
|
run:
|
||||||
|
shell: bash
|
||||||
|
|
||||||
|
env:
|
||||||
|
PRIMUS_HOME: .primus
|
||||||
|
MAKE: make --no-print-directory --makefile=.primus/src/make/main.mk
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
prepare:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ contains(github.event.label.name, 'staging:') || github.event.ref == 'refs/heads/main' }}
|
||||||
|
outputs:
|
||||||
|
version: ${{ steps.build-info.outputs.version }}
|
||||||
|
hash: ${{ steps.build-info.outputs.hash }}
|
||||||
|
time: ${{ steps.build-info.outputs.time }}
|
||||||
|
branch: ${{ steps.build-info.outputs.branch }}
|
||||||
|
deployment: ${{ steps.build-info.outputs.deployment }}
|
||||||
|
steps:
|
||||||
|
- name: self-checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- id: token
|
||||||
|
name: github-token-gen
|
||||||
|
uses: actions/create-github-app-token@v1
|
||||||
|
with:
|
||||||
|
app-id: ${{ secrets.PRIMUS_APP_ID }}
|
||||||
|
private-key: ${{ secrets.PRIMUS_PRIVATE_KEY }}
|
||||||
|
owner: ${{ github.repository_owner }}
|
||||||
|
- name: primus-checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
repository: signoz/primus
|
||||||
|
ref: main
|
||||||
|
path: .primus
|
||||||
|
token: ${{ steps.token.outputs.token }}
|
||||||
|
- name: build-info
|
||||||
|
id: build-info
|
||||||
|
run: |
|
||||||
|
echo "version=$($MAKE info-version)" >> $GITHUB_OUTPUT
|
||||||
|
echo "hash=$($MAKE info-commit-short)" >> $GITHUB_OUTPUT
|
||||||
|
echo "time=$($MAKE info-timestamp)" >> $GITHUB_OUTPUT
|
||||||
|
echo "branch=$($MAKE info-branch)" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
|
staging_label="${{ github.event.label.name }}"
|
||||||
|
if [[ "${staging_label}" == "staging:"* ]]; then
|
||||||
|
deployment=${staging_label#"staging:"}
|
||||||
|
elif [[ "${{ github.event.ref }}" == "refs/heads/main" ]]; then
|
||||||
|
deployment="staging"
|
||||||
|
else
|
||||||
|
echo "error: not able to determine deployment - please verify the PR label or the branch"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "deployment=${deployment}" >> $GITHUB_OUTPUT
|
||||||
|
- name: create-dotenv
|
||||||
|
run: |
|
||||||
|
mkdir -p frontend
|
||||||
|
echo 'CI=1' > frontend/.env
|
||||||
|
echo 'TUNNEL_URL=https://telemetry.staging.signoz.cloud/tunnel' >> frontend/.env
|
||||||
|
echo 'TUNNEL_DOMAIN=https://telemetry.staging.signoz.cloud' >> frontend/.env
|
||||||
|
- name: cache-dotenv
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: frontend/.env
|
||||||
|
key: staging-dotenv-${{ github.sha }}
|
||||||
|
js-build:
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/js-build.yaml@main
|
||||||
|
needs: prepare
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
JS_SRC: frontend
|
||||||
|
JS_INPUT_ARTIFACT_CACHE_KEY: staging-dotenv-${{ github.sha }}
|
||||||
|
JS_INPUT_ARTIFACT_PATH: frontend/.env
|
||||||
|
JS_OUTPUT_ARTIFACT_CACHE_KEY: staging-jsbuild-${{ github.sha }}
|
||||||
|
JS_OUTPUT_ARTIFACT_PATH: frontend/build
|
||||||
|
DOCKER_BUILD: false
|
||||||
|
DOCKER_MANIFEST: false
|
||||||
|
go-build:
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/go-build.yaml@main
|
||||||
|
needs: [prepare, js-build]
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
GO_INPUT_ARTIFACT_CACHE_KEY: staging-jsbuild-${{ github.sha }}
|
||||||
|
GO_INPUT_ARTIFACT_PATH: frontend/build
|
||||||
|
GO_BUILD_CONTEXT: ./ee/query-service
|
||||||
|
GO_BUILD_FLAGS: >-
|
||||||
|
-tags timetzdata
|
||||||
|
-ldflags='-linkmode external -extldflags \"-static\" -s -w
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.version=${{ needs.prepare.outputs.version }}
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.variant=enterprise
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.hash=${{ needs.prepare.outputs.hash }}
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.time=${{ needs.prepare.outputs.time }}
|
||||||
|
-X github.com/SigNoz/signoz/pkg/version.branch=${{ needs.prepare.outputs.branch }}
|
||||||
|
-X github.com/SigNoz/signoz/ee/zeus.url=https://api.staging.signoz.cloud
|
||||||
|
-X github.com/SigNoz/signoz/ee/zeus.deprecatedURL=https://license.staging.signoz.cloud'
|
||||||
|
GO_CGO_ENABLED: 1
|
||||||
|
DOCKER_BASE_IMAGES: '{"alpine": "alpine:3.20.3"}'
|
||||||
|
DOCKER_DOCKERFILE_PATH: ./ee/query-service/Dockerfile.multi-arch
|
||||||
|
DOCKER_MANIFEST: true
|
||||||
|
DOCKER_PROVIDERS: gcp
|
||||||
|
staging:
|
||||||
|
if: ${{ contains(github.event.label.name, 'staging:') || github.event.ref == 'refs/heads/main' }}
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/github-trigger.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
needs: [prepare, go-build]
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
GITHUB_ENVIRONMENT: staging
|
||||||
|
GITHUB_SILENT: true
|
||||||
|
GITHUB_REPOSITORY_NAME: charts-saas-v3-staging
|
||||||
|
GITHUB_EVENT_NAME: releaser
|
||||||
|
GITHUB_EVENT_PAYLOAD: "{\"deployment\": \"${{ needs.prepare.outputs.deployment }}\", \"signoz_version\": \"${{ needs.prepare.outputs.version }}\"}"
|
||||||
90
.github/workflows/build.yaml
vendored
90
.github/workflows/build.yaml
vendored
@@ -1,90 +0,0 @@
|
|||||||
name: build-pipeline
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- develop
|
|
||||||
- main
|
|
||||||
- release/v*
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check-no-ee-references:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- name: Run check
|
|
||||||
run: make check-no-ee-references
|
|
||||||
|
|
||||||
build-frontend:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Install dependencies
|
|
||||||
run: cd frontend && yarn install
|
|
||||||
- name: Run ESLint
|
|
||||||
run: cd frontend && npm run lint
|
|
||||||
- name: Run Jest
|
|
||||||
run: cd frontend && npm run jest
|
|
||||||
- name: TSC
|
|
||||||
run: yarn tsc
|
|
||||||
working-directory: ./frontend
|
|
||||||
- name: Build frontend docker image
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
make build-frontend-amd64
|
|
||||||
|
|
||||||
build-frontend-ee:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Create .env file
|
|
||||||
run: |
|
|
||||||
echo 'INTERCOM_APP_ID="${{ secrets.INTERCOM_APP_ID }}"' > frontend/.env
|
|
||||||
echo 'SEGMENT_ID="${{ secrets.SEGMENT_ID }}"' >> frontend/.env
|
|
||||||
- name: Install dependencies
|
|
||||||
run: cd frontend && yarn install
|
|
||||||
- name: Run ESLint
|
|
||||||
run: cd frontend && npm run lint
|
|
||||||
- name: Run Jest
|
|
||||||
run: cd frontend && npm run jest
|
|
||||||
- name: TSC
|
|
||||||
run: yarn tsc
|
|
||||||
working-directory: ./frontend
|
|
||||||
- name: Build frontend docker image
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
make build-frontend-amd64
|
|
||||||
|
|
||||||
build-query-service:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup golang
|
|
||||||
uses: actions/setup-go@v4
|
|
||||||
with:
|
|
||||||
go-version: "1.21"
|
|
||||||
- name: Run tests
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
make test
|
|
||||||
- name: Build query-service image
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
make build-query-service-amd64
|
|
||||||
|
|
||||||
build-ee-query-service:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup golang
|
|
||||||
uses: actions/setup-go@v4
|
|
||||||
with:
|
|
||||||
go-version: "1.21"
|
|
||||||
- name: Build EE query-service image
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
make build-ee-query-service-amd64
|
|
||||||
17
.github/workflows/codeball.yml
vendored
17
.github/workflows/codeball.yml
vendored
@@ -1,17 +0,0 @@
|
|||||||
name: Codeball
|
|
||||||
on: [pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
codeball_job:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
name: Codeball
|
|
||||||
steps:
|
|
||||||
# Run Codeball on all new Pull Requests 🚀
|
|
||||||
# For customizations and more documentation, see https://github.com/sturdy-dev/codeball-action
|
|
||||||
- name: Codeball
|
|
||||||
uses: sturdy-dev/codeball-action@v2
|
|
||||||
with:
|
|
||||||
approvePullRequests: "true"
|
|
||||||
labelPullRequestsWhenApproved: "true"
|
|
||||||
labelPullRequestsWhenReviewNeeded: "false"
|
|
||||||
failJobsWhenReviewNeeded: "false"
|
|
||||||
71
.github/workflows/codeql.yaml
vendored
71
.github/workflows/codeql.yaml
vendored
@@ -1,71 +0,0 @@
|
|||||||
# For most projects, this workflow file will not need changing; you simply need
|
|
||||||
# to commit it to your repository.
|
|
||||||
#
|
|
||||||
# You may wish to alter this file to override the set of languages analyzed,
|
|
||||||
# or to provide custom queries or build logic.
|
|
||||||
#
|
|
||||||
# ******** NOTE ********
|
|
||||||
# We have attempted to detect the languages in your repository. Please check
|
|
||||||
# the `language` matrix defined below to confirm you have the correct set of
|
|
||||||
# supported CodeQL languages.
|
|
||||||
#
|
|
||||||
name: "CodeQL"
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main, v* ]
|
|
||||||
pull_request:
|
|
||||||
# The branches below must be a subset of the branches above
|
|
||||||
branches: [ main ]
|
|
||||||
schedule:
|
|
||||||
- cron: '32 5 * * 5'
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
analyze:
|
|
||||||
name: Analyze
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
permissions:
|
|
||||||
actions: read
|
|
||||||
contents: read
|
|
||||||
security-events: write
|
|
||||||
|
|
||||||
strategy:
|
|
||||||
fail-fast: false
|
|
||||||
matrix:
|
|
||||||
language: [ 'go', 'javascript', 'python' ]
|
|
||||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
|
||||||
# Learn more:
|
|
||||||
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
# Initializes the CodeQL tools for scanning.
|
|
||||||
- name: Initialize CodeQL
|
|
||||||
uses: github/codeql-action/init@v2
|
|
||||||
with:
|
|
||||||
languages: ${{ matrix.language }}
|
|
||||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
|
||||||
# By default, queries listed here will override any specified in a config file.
|
|
||||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
|
||||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
|
||||||
|
|
||||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
|
||||||
# If this step fails, then you should remove it and run the build manually (see below)
|
|
||||||
- name: Autobuild
|
|
||||||
uses: github/codeql-action/autobuild@v2
|
|
||||||
|
|
||||||
# ℹ️ Command-line programs to run using the OS shell.
|
|
||||||
# 📚 https://git.io/JvXDl
|
|
||||||
|
|
||||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
|
||||||
# and modify them (or add more) to build your code if your project
|
|
||||||
# uses a compiled language
|
|
||||||
|
|
||||||
#- run: |
|
|
||||||
# make bootstrap
|
|
||||||
# make release
|
|
||||||
|
|
||||||
- name: Perform CodeQL Analysis
|
|
||||||
uses: github/codeql-action/analyze@v2
|
|
||||||
27
.github/workflows/commitci.yaml
vendored
Normal file
27
.github/workflows/commitci.yaml
vendored
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
name: commitci
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request_target:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
refcheck:
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'pull_request' && ! github.event.pull_request.head.repo.fork && github.event.pull_request.user.login != 'dependabot[bot]' && ! contains(github.event.pull_request.labels.*.name, 'safe-to-test')) ||
|
||||||
|
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe-to-test'))
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: check
|
||||||
|
run: |
|
||||||
|
if grep -R --include="*.go" '.*/ee/.*' pkg/; then
|
||||||
|
echo "Error: Found references to 'ee' packages in 'pkg' directory"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "No references to 'ee' packages found in 'pkg' directory"
|
||||||
|
fi
|
||||||
13
.github/workflows/commitlint.yml
vendored
13
.github/workflows/commitlint.yml
vendored
@@ -1,13 +0,0 @@
|
|||||||
name: commitlint
|
|
||||||
on: [pull_request]
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
working-directory: frontend
|
|
||||||
jobs:
|
|
||||||
lint-commits:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
- uses: wagoid/commitlint-github-action@v5
|
|
||||||
27
.github/workflows/create-issue-on-pr-merge.yml
vendored
27
.github/workflows/create-issue-on-pr-merge.yml
vendored
@@ -1,27 +0,0 @@
|
|||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
types:
|
|
||||||
- closed
|
|
||||||
|
|
||||||
env:
|
|
||||||
GITHUB_ACCESS_TOKEN: ${{ secrets.CI_BOT_TOKEN }}
|
|
||||||
PR_NUMBER: ${{ github.event.number }}
|
|
||||||
jobs:
|
|
||||||
create_issue_on_merge:
|
|
||||||
if: github.event.pull_request.merged == true
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout Codebase
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
repository: signoz/gh-bot
|
|
||||||
- name: Use Node v16
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: 16
|
|
||||||
- name: Setup Cache & Install Dependencies
|
|
||||||
uses: bahmutov/npm-install@v1
|
|
||||||
with:
|
|
||||||
install-command: yarn --frozen-lockfile
|
|
||||||
- name: Comment on PR
|
|
||||||
run: node create-issue.js
|
|
||||||
22
.github/workflows/dependency-review.yml
vendored
22
.github/workflows/dependency-review.yml
vendored
@@ -1,22 +0,0 @@
|
|||||||
# Dependency Review Action
|
|
||||||
#
|
|
||||||
# This Action will scan dependency manifest files that change as part of a Pull Request, surfacing known-vulnerable versions of the packages declared or updated in the PR. Once installed, if the workflow run is marked as required, PRs introducing known-vulnerable packages will be blocked from merging.
|
|
||||||
#
|
|
||||||
# Source repository: https://github.com/actions/dependency-review-action
|
|
||||||
# Public documentation: https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review#dependency-review-enforcement
|
|
||||||
name: 'Dependency Review'
|
|
||||||
on: [pull_request]
|
|
||||||
|
|
||||||
permissions:
|
|
||||||
contents: read
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
dependency-review:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: 'Checkout Repository'
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: 'Dependency Review'
|
|
||||||
with:
|
|
||||||
fail-on-severity: high
|
|
||||||
uses: actions/dependency-review-action@v3
|
|
||||||
83
.github/workflows/docs.yml
vendored
Normal file
83
.github/workflows/docs.yml
vendored
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
name: "Update PR labels and Block PR until related docs are shipped for the feature"
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
types: [opened, edited, labeled, unlabeled]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
docs_label_check:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check PR Title and Manage Labels
|
||||||
|
uses: actions/github-script@v6
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const prTitle = context.payload.pull_request.title;
|
||||||
|
const prNumber = context.payload.pull_request.number;
|
||||||
|
const owner = context.repo.owner;
|
||||||
|
const repo = context.repo.repo;
|
||||||
|
|
||||||
|
// Fetch the current PR details to get labels
|
||||||
|
const pr = await github.rest.pulls.get({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
pull_number: prNumber
|
||||||
|
});
|
||||||
|
|
||||||
|
const labels = pr.data.labels.map(label => label.name);
|
||||||
|
|
||||||
|
if (prTitle.startsWith('feat:')) {
|
||||||
|
const hasDocsRequired = labels.includes('docs required');
|
||||||
|
const hasDocsShipped = labels.includes('docs shipped');
|
||||||
|
const hasDocsNotRequired = labels.includes('docs not required');
|
||||||
|
|
||||||
|
// If "docs not required" is present, skip the checks
|
||||||
|
if (hasDocsNotRequired && !hasDocsRequired) {
|
||||||
|
console.log("Skipping checks due to 'docs not required' label.");
|
||||||
|
return; // Exit the script early
|
||||||
|
}
|
||||||
|
|
||||||
|
// If "docs shipped" is present, remove "docs required" if it exists
|
||||||
|
if (hasDocsShipped && hasDocsRequired) {
|
||||||
|
await github.rest.issues.removeLabel({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
issue_number: prNumber,
|
||||||
|
name: 'docs required'
|
||||||
|
});
|
||||||
|
console.log("Removed 'docs required' label.");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add "docs required" label if neither "docs shipped" nor "docs required" are present
|
||||||
|
if (!hasDocsRequired && !hasDocsShipped) {
|
||||||
|
await github.rest.issues.addLabels({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
issue_number: prNumber,
|
||||||
|
labels: ['docs required']
|
||||||
|
});
|
||||||
|
console.log("Added 'docs required' label.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fetch the updated labels after any changes
|
||||||
|
const updatedPr = await github.rest.pulls.get({
|
||||||
|
owner,
|
||||||
|
repo,
|
||||||
|
pull_number: prNumber
|
||||||
|
});
|
||||||
|
|
||||||
|
const updatedLabels = updatedPr.data.labels.map(label => label.name);
|
||||||
|
const updatedHasDocsRequired = updatedLabels.includes('docs required');
|
||||||
|
const updatedHasDocsShipped = updatedLabels.includes('docs shipped');
|
||||||
|
|
||||||
|
// Block PR if "docs required" is still present and "docs shipped" is missing
|
||||||
|
if (updatedHasDocsRequired && !updatedHasDocsShipped) {
|
||||||
|
core.setFailed("This PR requires documentation. Please remove the 'docs required' label and add the 'docs shipped' label to proceed.");
|
||||||
|
}
|
||||||
93
.github/workflows/e2e-k3s.yaml
vendored
93
.github/workflows/e2e-k3s.yaml
vendored
@@ -1,93 +0,0 @@
|
|||||||
name: e2e-k3s
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types: [labeled]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
|
|
||||||
e2e-k3s:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
if: ${{ github.event.label.name == 'ok-to-test' }}
|
|
||||||
env:
|
|
||||||
DOCKER_TAG: pull-${{ github.event.number }}
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup golang
|
|
||||||
uses: actions/setup-go@v4
|
|
||||||
with:
|
|
||||||
go-version: "1.21"
|
|
||||||
|
|
||||||
- name: Build query-service image
|
|
||||||
env:
|
|
||||||
DEV_BUILD: 1
|
|
||||||
run: make build-ee-query-service-amd64
|
|
||||||
|
|
||||||
- name: Build frontend image
|
|
||||||
run: make build-frontend-amd64
|
|
||||||
|
|
||||||
- name: Create a k3s cluster
|
|
||||||
uses: AbsaOSS/k3d-action@v2
|
|
||||||
with:
|
|
||||||
cluster-name: "signoz"
|
|
||||||
|
|
||||||
- name: Inject the images to the cluster
|
|
||||||
run: k3d image import signoz/query-service:$DOCKER_TAG signoz/frontend:$DOCKER_TAG -c signoz
|
|
||||||
|
|
||||||
- name: Set up HotROD sample-app
|
|
||||||
run: |
|
|
||||||
# create sample-application namespace
|
|
||||||
kubectl create ns sample-application
|
|
||||||
|
|
||||||
# apply hotrod k8s manifest file
|
|
||||||
kubectl -n sample-application apply -f https://raw.githubusercontent.com/SigNoz/signoz/develop/sample-apps/hotrod/hotrod.yaml
|
|
||||||
|
|
||||||
# wait for all deployments in sample-application namespace to be READY
|
|
||||||
kubectl -n sample-application get deploy --output name | xargs -r -n1 -t kubectl -n sample-application rollout status --timeout=300s
|
|
||||||
|
|
||||||
- name: Deploy the app
|
|
||||||
run: |
|
|
||||||
# add signoz helm repository
|
|
||||||
helm repo add signoz https://charts.signoz.io
|
|
||||||
|
|
||||||
# create platform namespace
|
|
||||||
kubectl create ns platform
|
|
||||||
|
|
||||||
# installing signoz using helm
|
|
||||||
helm install my-release signoz/signoz -n platform \
|
|
||||||
--wait \
|
|
||||||
--timeout 10m0s \
|
|
||||||
--set frontend.service.type=LoadBalancer \
|
|
||||||
--set queryService.image.tag=$DOCKER_TAG \
|
|
||||||
--set frontend.image.tag=$DOCKER_TAG
|
|
||||||
|
|
||||||
# get pods, services and the container images
|
|
||||||
kubectl get pods -n platform
|
|
||||||
kubectl get svc -n platform
|
|
||||||
|
|
||||||
- name: Kick off a sample-app workload
|
|
||||||
run: |
|
|
||||||
# start the locust swarm
|
|
||||||
kubectl --namespace sample-application run strzal --image=djbingham/curl \
|
|
||||||
--restart='OnFailure' -i --tty --rm --command -- curl -X POST -F \
|
|
||||||
'user_count=6' -F 'spawn_rate=2' http://locust-master:8089/swarm
|
|
||||||
|
|
||||||
- name: Get short commit SHA, display tunnel URL and IP Address of the worker node
|
|
||||||
id: get-subdomain
|
|
||||||
run: |
|
|
||||||
subdomain="pr-$(git rev-parse --short HEAD)"
|
|
||||||
echo "URL for tunnelling: https://$subdomain.loca.lt"
|
|
||||||
echo "subdomain=$subdomain" >> $GITHUB_OUTPUT
|
|
||||||
worker_ip="$(curl -4 -s ipconfig.io/ip)"
|
|
||||||
echo "Worker node IP address: $worker_ip"
|
|
||||||
|
|
||||||
- name: Start tunnel
|
|
||||||
env:
|
|
||||||
SUBDOMAIN: ${{ steps.get-subdomain.outputs.subdomain }}
|
|
||||||
run: |
|
|
||||||
npm install -g localtunnel
|
|
||||||
host=$(kubectl get svc -n platform | grep frontend | tr -s ' ' | cut -d" " -f4)
|
|
||||||
port=$(kubectl get svc -n platform | grep frontend | tr -s ' ' | cut -d" " -f5 | cut -d":" -f1)
|
|
||||||
lt -p $port -l $host -s $SUBDOMAIN
|
|
||||||
63
.github/workflows/goci.yaml
vendored
Normal file
63
.github/workflows/goci.yaml
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
name: goci
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request_target:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'pull_request' && ! github.event.pull_request.head.repo.fork && github.event.pull_request.user.login != 'dependabot[bot]' && ! contains(github.event.pull_request.labels.*.name, 'safe-to-test')) ||
|
||||||
|
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe-to-test'))
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/go-test.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
GO_TEST_CONTEXT: ./...
|
||||||
|
fmt:
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'pull_request' && ! github.event.pull_request.head.repo.fork && github.event.pull_request.user.login != 'dependabot[bot]' && ! contains(github.event.pull_request.labels.*.name, 'safe-to-test')) ||
|
||||||
|
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe-to-test'))
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/go-fmt.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
lint:
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'pull_request' && ! github.event.pull_request.head.repo.fork && github.event.pull_request.user.login != 'dependabot[bot]' && ! contains(github.event.pull_request.labels.*.name, 'safe-to-test')) ||
|
||||||
|
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe-to-test'))
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/go-lint.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
build:
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'pull_request' && ! github.event.pull_request.head.repo.fork && github.event.pull_request.user.login != 'dependabot[bot]' && ! contains(github.event.pull_request.labels.*.name, 'safe-to-test')) ||
|
||||||
|
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe-to-test'))
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: self-checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: go-install
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: "1.22"
|
||||||
|
- name: qemu-install
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
- name: aarch64-install
|
||||||
|
run: |
|
||||||
|
set -ex
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y gcc-aarch64-linux-gnu musl-tools
|
||||||
|
- name: docker-community
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
make docker-build-community
|
||||||
|
- name: docker-enterprise
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
make docker-build-enterprise
|
||||||
34
.github/workflows/gor-histogramquantile.yaml
vendored
Normal file
34
.github/workflows/gor-histogramquantile.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: gor-histogramquantile
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- histogram-quantile/v*
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
goreleaser:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
workdirs:
|
||||||
|
- scripts/clickhouse/histogramquantile
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: set-up-go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
- name: run-goreleaser
|
||||||
|
uses: goreleaser/goreleaser-action@v6
|
||||||
|
with:
|
||||||
|
distribution: goreleaser-pro
|
||||||
|
version: '~> v2'
|
||||||
|
args: release --clean
|
||||||
|
workdir: ${{ matrix.workdirs }}
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||||
155
.github/workflows/gor-signoz-community.yaml
vendored
Normal file
155
.github/workflows/gor-signoz-community.yaml
vendored
Normal file
@@ -0,0 +1,155 @@
|
|||||||
|
name: gor-signoz-community
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||||
|
- 'v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
prepare:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: get-sha
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
||||||
|
- name: build-frontend
|
||||||
|
run: make js-build
|
||||||
|
- name: upload-frontend-artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: community-frontend-build-${{ env.sha_short }}
|
||||||
|
path: frontend/build
|
||||||
|
build:
|
||||||
|
needs: prepare
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
- macos-latest
|
||||||
|
env:
|
||||||
|
CONFIG_PATH: pkg/query-service/.goreleaser.yaml
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: setup-qemu
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
- name: setup-buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
- name: ghcr-login
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
if: matrix.os != 'macos-latest'
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: setup-go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: "1.22"
|
||||||
|
- name: cross-compilation-tools
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y gcc-aarch64-linux-gnu musl-tools
|
||||||
|
- name: get-sha
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
||||||
|
- name: download-frontend-artifact
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: community-frontend-build-${{ env.sha_short }}
|
||||||
|
path: frontend/build
|
||||||
|
- name: cache-linux
|
||||||
|
uses: actions/cache@v4
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
with:
|
||||||
|
path: dist/linux
|
||||||
|
key: signoz-community-linux-${{ env.sha_short }}
|
||||||
|
- name: cache-darwin
|
||||||
|
uses: actions/cache@v4
|
||||||
|
if: matrix.os == 'macos-latest'
|
||||||
|
with:
|
||||||
|
path: dist/darwin
|
||||||
|
key: signoz-community-darwin-${{ env.sha_short }}
|
||||||
|
- name: release
|
||||||
|
uses: goreleaser/goreleaser-action@v6
|
||||||
|
with:
|
||||||
|
distribution: goreleaser-pro
|
||||||
|
version: '~> v2'
|
||||||
|
args: release --config ${{ env.CONFIG_PATH }} --clean --split
|
||||||
|
workdir: .
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
env:
|
||||||
|
DOCKER_CLI_EXPERIMENTAL: "enabled"
|
||||||
|
WORKDIR: pkg/query-service
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: setup-qemu
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
- name: setup-buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
- name: cosign-installer
|
||||||
|
uses: sigstore/cosign-installer@v3.8.1
|
||||||
|
- name: download-syft
|
||||||
|
uses: anchore/sbom-action/download-syft@v0.18.0
|
||||||
|
- name: ghcr-login
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: setup-go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: "1.22"
|
||||||
|
|
||||||
|
# copy the caches from build
|
||||||
|
- name: get-sha
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
||||||
|
- name: cache-linux
|
||||||
|
id: cache-linux
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: dist/linux
|
||||||
|
key: signoz-community-linux-${{ env.sha_short }}
|
||||||
|
- name: cache-darwin
|
||||||
|
id: cache-darwin
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: dist/darwin
|
||||||
|
key: signoz-community-darwin-${{ env.sha_short }}
|
||||||
|
|
||||||
|
# release
|
||||||
|
- uses: goreleaser/goreleaser-action@v6
|
||||||
|
if: steps.cache-linux.outputs.cache-hit == 'true' && steps.cache-darwin.outputs.cache-hit == 'true' # only run if caches hit
|
||||||
|
with:
|
||||||
|
distribution: goreleaser-pro
|
||||||
|
version: '~> v2'
|
||||||
|
args: continue --merge
|
||||||
|
workdir: .
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||||
168
.github/workflows/gor-signoz.yaml
vendored
Normal file
168
.github/workflows/gor-signoz.yaml
vendored
Normal file
@@ -0,0 +1,168 @@
|
|||||||
|
name: gor-signoz
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
tags:
|
||||||
|
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||||
|
- 'v[0-9]+.[0-9]+.[0-9]+-rc.[0-9]+'
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
prepare:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: get-sha
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
||||||
|
- name: dotenv-frontend
|
||||||
|
working-directory: frontend
|
||||||
|
run: |
|
||||||
|
echo 'INTERCOM_APP_ID="${{ secrets.INTERCOM_APP_ID }}"' > .env
|
||||||
|
echo 'SEGMENT_ID="${{ secrets.SEGMENT_ID }}"' >> .env
|
||||||
|
echo 'SENTRY_AUTH_TOKEN="${{ secrets.SENTRY_AUTH_TOKEN }}"' >> .env
|
||||||
|
echo 'SENTRY_ORG="${{ secrets.SENTRY_ORG }}"' >> .env
|
||||||
|
echo 'SENTRY_PROJECT_ID="${{ secrets.SENTRY_PROJECT_ID }}"' >> .env
|
||||||
|
echo 'SENTRY_DSN="${{ secrets.SENTRY_DSN }}"' >> .env
|
||||||
|
echo 'TUNNEL_URL="${{ secrets.TUNNEL_URL }}"' >> .env
|
||||||
|
echo 'TUNNEL_DOMAIN="${{ secrets.TUNNEL_DOMAIN }}"' >> .env
|
||||||
|
echo 'POSTHOG_KEY="${{ secrets.POSTHOG_KEY }}"' >> .env
|
||||||
|
echo 'CUSTOMERIO_ID="${{ secrets.CUSTOMERIO_ID }}"' >> .env
|
||||||
|
echo 'CUSTOMERIO_SITE_ID="${{ secrets.CUSTOMERIO_SITE_ID }}"' >> .env
|
||||||
|
- name: build-frontend
|
||||||
|
run: make js-build
|
||||||
|
- name: upload-frontend-artifact
|
||||||
|
uses: actions/upload-artifact@v4
|
||||||
|
with:
|
||||||
|
name: frontend-build-${{ env.sha_short }}
|
||||||
|
path: frontend/build
|
||||||
|
build:
|
||||||
|
needs: prepare
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os:
|
||||||
|
- ubuntu-latest
|
||||||
|
- macos-latest
|
||||||
|
env:
|
||||||
|
CONFIG_PATH: ee/query-service/.goreleaser.yaml
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: setup-qemu
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
- name: setup-buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
- name: ghcr-login
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
if: matrix.os != 'macos-latest'
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: setup-go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: "1.22"
|
||||||
|
- name: cross-compilation-tools
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
run: |
|
||||||
|
sudo apt-get update
|
||||||
|
sudo apt-get install -y gcc-aarch64-linux-gnu musl-tools
|
||||||
|
- name: get-sha
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
||||||
|
- name: download-frontend-artifact
|
||||||
|
uses: actions/download-artifact@v4
|
||||||
|
with:
|
||||||
|
name: frontend-build-${{ env.sha_short }}
|
||||||
|
path: frontend/build
|
||||||
|
- name: cache-linux
|
||||||
|
uses: actions/cache@v4
|
||||||
|
if: matrix.os == 'ubuntu-latest'
|
||||||
|
with:
|
||||||
|
path: dist/linux
|
||||||
|
key: signoz-linux-${{ env.sha_short }}
|
||||||
|
- name: cache-darwin
|
||||||
|
uses: actions/cache@v4
|
||||||
|
if: matrix.os == 'macos-latest'
|
||||||
|
with:
|
||||||
|
path: dist/darwin
|
||||||
|
key: signoz-darwin-${{ env.sha_short }}
|
||||||
|
- name: release
|
||||||
|
uses: goreleaser/goreleaser-action@v6
|
||||||
|
with:
|
||||||
|
distribution: goreleaser-pro
|
||||||
|
version: '~> v2'
|
||||||
|
args: release --config ${{ env.CONFIG_PATH }} --clean --split
|
||||||
|
workdir: .
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||||
|
release:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: build
|
||||||
|
env:
|
||||||
|
DOCKER_CLI_EXPERIMENTAL: "enabled"
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: setup-qemu
|
||||||
|
uses: docker/setup-qemu-action@v3
|
||||||
|
- name: setup-buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
- name: cosign-installer
|
||||||
|
uses: sigstore/cosign-installer@v3.8.1
|
||||||
|
- name: download-syft
|
||||||
|
uses: anchore/sbom-action/download-syft@v0.18.0
|
||||||
|
- name: ghcr-login
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||||
|
- name: setup-go
|
||||||
|
uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version: "1.22"
|
||||||
|
|
||||||
|
# copy the caches from build
|
||||||
|
- name: get-sha
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
|
||||||
|
- name: cache-linux
|
||||||
|
id: cache-linux
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: dist/linux
|
||||||
|
key: signoz-linux-${{ env.sha_short }}
|
||||||
|
- name: cache-darwin
|
||||||
|
id: cache-darwin
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: dist/darwin
|
||||||
|
key: signoz-darwin-${{ env.sha_short }}
|
||||||
|
|
||||||
|
# release
|
||||||
|
- uses: goreleaser/goreleaser-action@v6
|
||||||
|
if: steps.cache-linux.outputs.cache-hit == 'true' && steps.cache-darwin.outputs.cache-hit == 'true' # only run if caches hit
|
||||||
|
with:
|
||||||
|
distribution: goreleaser-pro
|
||||||
|
version: '~> v2'
|
||||||
|
args: continue --merge
|
||||||
|
workdir: .
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
||||||
53
.github/workflows/integrationci.yaml
vendored
Normal file
53
.github/workflows/integrationci.yaml
vendored
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
name: integrationci
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
pull_request_target:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
src:
|
||||||
|
- bootstrap
|
||||||
|
sqlstore-provider:
|
||||||
|
- postgres
|
||||||
|
- sqlite
|
||||||
|
clickhouse-version:
|
||||||
|
- 24.1.2-alpine
|
||||||
|
- 24.12-alpine
|
||||||
|
schema-migrator-version:
|
||||||
|
- v0.111.38
|
||||||
|
postgres-version:
|
||||||
|
- 15
|
||||||
|
if: |
|
||||||
|
((github.event_name == 'pull_request' && ! github.event.pull_request.head.repo.fork && github.event.pull_request.user.login != 'dependabot[bot]' && ! contains(github.event.pull_request.labels.*.name, 'safe-to-test')) ||
|
||||||
|
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe-to-test'))) && contains(github.event.pull_request.labels.*.name, 'safe-to-integrate')
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: python
|
||||||
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: 3.13
|
||||||
|
- name: poetry
|
||||||
|
run: |
|
||||||
|
python -m pip install poetry==2.1.2
|
||||||
|
python -m poetry config virtualenvs.in-project true
|
||||||
|
cd tests/integration && poetry install --no-root
|
||||||
|
- name: run
|
||||||
|
run: |
|
||||||
|
cd tests/integration && \
|
||||||
|
poetry run pytest \
|
||||||
|
--basetemp=./tmp/ \
|
||||||
|
src/${{matrix.src}} \
|
||||||
|
--sqlstore-provider ${{matrix.sqlstore-provider}} \
|
||||||
|
--postgres-version ${{matrix.postgres-version}} \
|
||||||
|
--clickhouse-version ${{matrix.clickhouse-version}} \
|
||||||
|
--schema-migrator-version ${{matrix.schema-migrator-version}}
|
||||||
31
.github/workflows/jest-coverage-changes.yml
vendored
31
.github/workflows/jest-coverage-changes.yml
vendored
@@ -1,31 +0,0 @@
|
|||||||
name: Jest Coverage - changed files
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches: develop
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
ref: "refs/heads/develop"
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }} # Provide the GitHub token for authentication
|
|
||||||
|
|
||||||
- name: Fetch branch
|
|
||||||
run: git fetch origin ${{ github.event.pull_request.head.ref }}
|
|
||||||
|
|
||||||
- run: |
|
|
||||||
git checkout ${{ github.event.pull_request.head.sha }}
|
|
||||||
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: lts/*
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: cd frontend && npm install -g yarn && yarn
|
|
||||||
|
|
||||||
- name: npm run test:changedsince
|
|
||||||
run: cd frontend && npm run i18n:generate-hash && npm run test:changedsince
|
|
||||||
50
.github/workflows/jsci.yaml
vendored
Normal file
50
.github/workflows/jsci.yaml
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
name: jsci
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request_target:
|
||||||
|
types:
|
||||||
|
- labeled
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
tsc:
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'pull_request' && ! github.event.pull_request.head.repo.fork && github.event.pull_request.user.login != 'dependabot[bot]' && ! contains(github.event.pull_request.labels.*.name, 'safe-to-test')) ||
|
||||||
|
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe-to-test'))
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
- name: install
|
||||||
|
run: cd frontend && yarn install
|
||||||
|
- name: tsc
|
||||||
|
run: cd frontend && yarn tsc
|
||||||
|
test:
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'pull_request' && ! github.event.pull_request.head.repo.fork && github.event.pull_request.user.login != 'dependabot[bot]' && ! contains(github.event.pull_request.labels.*.name, 'safe-to-test')) ||
|
||||||
|
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe-to-test'))
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/js-test.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
JS_SRC: frontend
|
||||||
|
fmt:
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'pull_request' && ! github.event.pull_request.head.repo.fork && github.event.pull_request.user.login != 'dependabot[bot]' && ! contains(github.event.pull_request.labels.*.name, 'safe-to-test')) ||
|
||||||
|
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe-to-test'))
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/js-fmt.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
JS_SRC: frontend
|
||||||
|
lint:
|
||||||
|
if: |
|
||||||
|
(github.event_name == 'pull_request' && ! github.event.pull_request.head.repo.fork && github.event.pull_request.user.login != 'dependabot[bot]' && ! contains(github.event.pull_request.labels.*.name, 'safe-to-test')) ||
|
||||||
|
(github.event_name == 'pull_request_target' && contains(github.event.pull_request.labels.*.name, 'safe-to-test'))
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/js-lint.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
JS_SRC: frontend
|
||||||
24
.github/workflows/playwright.yaml
vendored
24
.github/workflows/playwright.yaml
vendored
@@ -1,24 +0,0 @@
|
|||||||
name: Playwright Tests
|
|
||||||
on: [pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
playwright:
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
working-directory: frontend
|
|
||||||
timeout-minutes: 60
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: "16.x"
|
|
||||||
- name: Install dependencies
|
|
||||||
run: CI=1 yarn install
|
|
||||||
- name: Install Playwright
|
|
||||||
run: npx playwright install --with-deps
|
|
||||||
- name: Run Playwright tests
|
|
||||||
run: yarn playwright
|
|
||||||
env:
|
|
||||||
# This might depend on your test-runner/language binding
|
|
||||||
PLAYWRIGHT_TEST_BASE_URL: ${{ secrets.PLAYWRIGHT_TEST_BASE_URL }}
|
|
||||||
18
.github/workflows/postci.yaml
vendored
Normal file
18
.github/workflows/postci.yaml
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
name: postci
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request_target:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
types:
|
||||||
|
- synchronize
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
remove:
|
||||||
|
if: github.event.pull_request.head.repo.fork || github.event.pull_request.user.login == 'dependabot[bot]'
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/github-label.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
GITHUB_LABEL_ACTION: remove
|
||||||
|
GITHUB_LABEL_NAME: safe-to-test
|
||||||
19
.github/workflows/pr_verify_linked_issue.yml
vendored
19
.github/workflows/pr_verify_linked_issue.yml
vendored
@@ -1,19 +0,0 @@
|
|||||||
# This workflow will inspect a pull request to ensure there is a linked issue or a
|
|
||||||
# valid issue is mentioned in the body. If neither is present it fails the check and adds
|
|
||||||
# a comment alerting users of this missing requirement.
|
|
||||||
name: VerifyIssue
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types: [edited, opened]
|
|
||||||
check_run:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
verify_linked_issue:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
name: Ensure Pull Request has a linked issue.
|
|
||||||
steps:
|
|
||||||
- name: Verify Linked Issue
|
|
||||||
uses: srikanthccv/verify-linked-issue-action@v0.71
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
36
.github/workflows/prereleaser.yaml
vendored
Normal file
36
.github/workflows/prereleaser.yaml
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
name: prereleaser
|
||||||
|
|
||||||
|
on:
|
||||||
|
# schedule every wednesday 6:30 AM UTC (12:00 PM IST)
|
||||||
|
schedule:
|
||||||
|
- cron: '30 6 * * 3'
|
||||||
|
|
||||||
|
# allow manual triggering of the workflow by a maintainer
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
release_type:
|
||||||
|
description: "Type of the release"
|
||||||
|
type: choice
|
||||||
|
required: true
|
||||||
|
options:
|
||||||
|
- 'patch'
|
||||||
|
- 'minor'
|
||||||
|
- 'major'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
verify:
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/github-verify.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
GITHUB_TEAM_NAME: releaser
|
||||||
|
GITHUB_MEMBER_NAME: ${{ github.actor }}
|
||||||
|
signoz:
|
||||||
|
if: ${{ always() && (needs.verify.result == 'success' || github.event.name == 'schedule') }}
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/releaser.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
needs: [verify]
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
PROJECT_NAME: signoz
|
||||||
|
RELEASE_TYPE: ${{ inputs.release_type || 'minor' }}
|
||||||
197
.github/workflows/push.yaml
vendored
197
.github/workflows/push.yaml
vendored
@@ -1,197 +0,0 @@
|
|||||||
name: push
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- develop
|
|
||||||
tags:
|
|
||||||
- v*
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
image-build-and-push-query-service:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup golang
|
|
||||||
uses: actions/setup-go@v4
|
|
||||||
with:
|
|
||||||
go-version: "1.21"
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
with:
|
|
||||||
version: latest
|
|
||||||
- name: Login to DockerHub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
- uses: benjlevesque/short-sha@v2.2
|
|
||||||
id: short-sha
|
|
||||||
- name: Get branch name
|
|
||||||
id: branch-name
|
|
||||||
uses: tj-actions/branch-names@v7.0.7
|
|
||||||
- name: Set docker tag environment
|
|
||||||
run: |
|
|
||||||
if [ '${{ steps.branch-name.outputs.is_tag }}' == 'true' ]; then
|
|
||||||
tag="${{ steps.branch-name.outputs.tag }}"
|
|
||||||
tag="${tag:1}"
|
|
||||||
echo "DOCKER_TAG=${tag}-oss" >> $GITHUB_ENV
|
|
||||||
elif [ '${{ steps.branch-name.outputs.current_branch }}' == 'main' ]; then
|
|
||||||
echo "DOCKER_TAG=latest-oss" >> $GITHUB_ENV
|
|
||||||
else
|
|
||||||
echo "DOCKER_TAG=${{ steps.branch-name.outputs.current_branch }}-oss" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install cross-compilation tools
|
|
||||||
run: |
|
|
||||||
set -ex
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y gcc-aarch64-linux-gnu musl-tools
|
|
||||||
- name: Build and push docker image
|
|
||||||
run: make build-push-query-service
|
|
||||||
|
|
||||||
image-build-and-push-ee-query-service:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Setup golang
|
|
||||||
uses: actions/setup-go@v4
|
|
||||||
with:
|
|
||||||
go-version: "1.21"
|
|
||||||
- name: Set up QEMU
|
|
||||||
uses: docker/setup-qemu-action@v3
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
with:
|
|
||||||
version: latest
|
|
||||||
- name: Login to DockerHub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
- uses: benjlevesque/short-sha@v2.2
|
|
||||||
id: short-sha
|
|
||||||
- name: Get branch name
|
|
||||||
id: branch-name
|
|
||||||
uses: tj-actions/branch-names@v7.0.7
|
|
||||||
- name: Set docker tag environment
|
|
||||||
run: |
|
|
||||||
if [ '${{ steps.branch-name.outputs.is_tag }}' == 'true' ]; then
|
|
||||||
tag="${{ steps.branch-name.outputs.tag }}"
|
|
||||||
tag="${tag:1}"
|
|
||||||
echo "DOCKER_TAG=$tag" >> $GITHUB_ENV
|
|
||||||
elif [ '${{ steps.branch-name.outputs.current_branch }}' == 'main' ]; then
|
|
||||||
echo "DOCKER_TAG=latest" >> $GITHUB_ENV
|
|
||||||
else
|
|
||||||
echo "DOCKER_TAG=${{ steps.branch-name.outputs.current_branch }}" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Install cross-compilation tools
|
|
||||||
run: |
|
|
||||||
set -ex
|
|
||||||
sudo apt-get update
|
|
||||||
sudo apt-get install -y gcc-aarch64-linux-gnu musl-tools
|
|
||||||
- name: Build and push docker image
|
|
||||||
run: make build-push-ee-query-service
|
|
||||||
|
|
||||||
image-build-and-push-frontend:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Install dependencies
|
|
||||||
working-directory: frontend
|
|
||||||
run: yarn install
|
|
||||||
- name: Run Prettier
|
|
||||||
working-directory: frontend
|
|
||||||
run: npm run prettify
|
|
||||||
continue-on-error: true
|
|
||||||
- name: Run ESLint
|
|
||||||
working-directory: frontend
|
|
||||||
run: npm run lint
|
|
||||||
continue-on-error: true
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
with:
|
|
||||||
version: latest
|
|
||||||
- name: Login to DockerHub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
- uses: benjlevesque/short-sha@v2.2
|
|
||||||
id: short-sha
|
|
||||||
- name: Get branch name
|
|
||||||
id: branch-name
|
|
||||||
uses: tj-actions/branch-names@v7.0.7
|
|
||||||
- name: Set docker tag environment
|
|
||||||
run: |
|
|
||||||
if [ '${{ steps.branch-name.outputs.is_tag }}' == 'true' ]; then
|
|
||||||
tag="${{ steps.branch-name.outputs.tag }}"
|
|
||||||
tag="${tag:1}"
|
|
||||||
echo "DOCKER_TAG=$tag" >> $GITHUB_ENV
|
|
||||||
elif [ '${{ steps.branch-name.outputs.current_branch }}' == 'main' ]; then
|
|
||||||
echo "DOCKER_TAG=latest" >> $GITHUB_ENV
|
|
||||||
else
|
|
||||||
echo "DOCKER_TAG=${{ steps.branch-name.outputs.current_branch }}" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Build and push docker image
|
|
||||||
run: make build-push-frontend
|
|
||||||
|
|
||||||
image-build-and-push-frontend-ee:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
- name: Create .env file
|
|
||||||
run: |
|
|
||||||
echo 'INTERCOM_APP_ID="${{ secrets.INTERCOM_APP_ID }}"' > frontend/.env
|
|
||||||
echo 'SEGMENT_ID="${{ secrets.SEGMENT_ID }}"' >> frontend/.env
|
|
||||||
echo 'SENTRY_AUTH_TOKEN="${{ secrets.SENTRY_AUTH_TOKEN }}"' >> frontend/.env
|
|
||||||
echo 'SENTRY_ORG="${{ secrets.SENTRY_ORG }}"' >> frontend/.env
|
|
||||||
echo 'SENTRY_PROJECT_ID="${{ secrets.SENTRY_PROJECT_ID }}"' >> frontend/.env
|
|
||||||
echo 'SENTRY_DSN="${{ secrets.SENTRY_DSN }}"' >> frontend/.env
|
|
||||||
echo 'TUNNEL_URL="${{ secrets.TUNNEL_URL }}"' >> frontend/.env
|
|
||||||
echo 'TUNNEL_DOMAIN="${{ secrets.TUNNEL_DOMAIN }}"' >> frontend/.env
|
|
||||||
echo 'POSTHOG_KEY="${{ secrets.POSTHOG_KEY }}"' >> frontend/.env
|
|
||||||
- name: Install dependencies
|
|
||||||
working-directory: frontend
|
|
||||||
run: yarn install
|
|
||||||
- name: Run Prettier
|
|
||||||
working-directory: frontend
|
|
||||||
run: npm run prettify
|
|
||||||
continue-on-error: true
|
|
||||||
- name: Run ESLint
|
|
||||||
working-directory: frontend
|
|
||||||
run: npm run lint
|
|
||||||
continue-on-error: true
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
with:
|
|
||||||
version: latest
|
|
||||||
- name: Login to DockerHub
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
||||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
||||||
- uses: benjlevesque/short-sha@v2.2
|
|
||||||
id: short-sha
|
|
||||||
- name: Get branch name
|
|
||||||
id: branch-name
|
|
||||||
uses: tj-actions/branch-names@v7.0.7
|
|
||||||
- name: Set docker tag environment
|
|
||||||
run: |
|
|
||||||
if [ '${{ steps.branch-name.outputs.is_tag }}' == 'true' ]; then
|
|
||||||
tag="${{ steps.branch-name.outputs.tag }}"
|
|
||||||
tag="${tag:1}"
|
|
||||||
echo "DOCKER_TAG=${tag}-ee" >> $GITHUB_ENV
|
|
||||||
elif [ '${{ steps.branch-name.outputs.current_branch }}' == 'main' ]; then
|
|
||||||
echo "DOCKER_TAG=latest-ee" >> $GITHUB_ENV
|
|
||||||
else
|
|
||||||
echo "DOCKER_TAG=${{ steps.branch-name.outputs.current_branch }}-ee" >> $GITHUB_ENV
|
|
||||||
fi
|
|
||||||
- name: Build and push docker image
|
|
||||||
run: make build-push-frontend
|
|
||||||
34
.github/workflows/releaser.yaml
vendored
Normal file
34
.github/workflows/releaser.yaml
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
name: releaser
|
||||||
|
|
||||||
|
on:
|
||||||
|
# trigger on new latest release
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
detect:
|
||||||
|
if: ${{ !startsWith(github.event.release.tag_name, 'histogram-quantile/') }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
release_type: ${{ steps.find.outputs.release_type }}
|
||||||
|
steps:
|
||||||
|
- id: find
|
||||||
|
name: find
|
||||||
|
run: |
|
||||||
|
release_tag=${{ github.event.release.tag_name }}
|
||||||
|
patch_number=$(echo $release_tag | awk -F. '{print $3}')
|
||||||
|
release_type="minor"
|
||||||
|
if [[ $patch_number -ne 0 ]]; then
|
||||||
|
release_type="patch"
|
||||||
|
fi
|
||||||
|
echo "release_type=${release_type}" >> "$GITHUB_OUTPUT"
|
||||||
|
charts:
|
||||||
|
if: ${{ !startsWith(github.event.release.tag_name, 'histogram-quantile/') }}
|
||||||
|
uses: signoz/primus.workflows/.github/workflows/github-trigger.yaml@main
|
||||||
|
secrets: inherit
|
||||||
|
needs: [detect]
|
||||||
|
with:
|
||||||
|
PRIMUS_REF: main
|
||||||
|
GITHUB_REPOSITORY_NAME: charts
|
||||||
|
GITHUB_EVENT_NAME: prereleaser
|
||||||
|
GITHUB_EVENT_PAYLOAD: "{\"release_type\": \"${{ needs.detect.outputs.release_type }}\"}"
|
||||||
22
.github/workflows/remove-label.yaml
vendored
22
.github/workflows/remove-label.yaml
vendored
@@ -1,22 +0,0 @@
|
|||||||
name: remove-label
|
|
||||||
|
|
||||||
on:
|
|
||||||
pull_request_target:
|
|
||||||
types: [synchronize]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
remove:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Remove label ok-to-test from PR
|
|
||||||
uses: buildsville/add-remove-label@v2.0.0
|
|
||||||
with:
|
|
||||||
label: ok-to-test
|
|
||||||
type: remove
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
- name: Remove label testing-deploy from PR
|
|
||||||
uses: buildsville/add-remove-label@v2.0.0
|
|
||||||
with:
|
|
||||||
label: testing-deploy
|
|
||||||
type: remove
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
26
.github/workflows/sonar.yml
vendored
26
.github/workflows/sonar.yml
vendored
@@ -1,26 +0,0 @@
|
|||||||
name: sonar
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
- develop
|
|
||||||
paths:
|
|
||||||
- 'frontend/**'
|
|
||||||
defaults:
|
|
||||||
run:
|
|
||||||
working-directory: frontend
|
|
||||||
jobs:
|
|
||||||
sonar-analysis:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: Checkout code
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
- name: Sonar analysis
|
|
||||||
uses: sonarsource/sonarcloud-github-action@master
|
|
||||||
with:
|
|
||||||
projectBaseDir: frontend
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
||||||
55
.github/workflows/staging-deployment.yaml
vendored
55
.github/workflows/staging-deployment.yaml
vendored
@@ -1,55 +0,0 @@
|
|||||||
name: staging-deployment
|
|
||||||
# Trigger deployment only on push to develop branch
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- develop
|
|
||||||
jobs:
|
|
||||||
deploy:
|
|
||||||
name: Deploy latest develop branch to staging
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
environment: staging
|
|
||||||
permissions:
|
|
||||||
contents: 'read'
|
|
||||||
id-token: 'write'
|
|
||||||
steps:
|
|
||||||
- id: 'auth'
|
|
||||||
uses: 'google-github-actions/auth@v2'
|
|
||||||
with:
|
|
||||||
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
|
|
||||||
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}
|
|
||||||
|
|
||||||
- name: 'sdk'
|
|
||||||
uses: 'google-github-actions/setup-gcloud@v2'
|
|
||||||
|
|
||||||
- name: 'ssh'
|
|
||||||
shell: bash
|
|
||||||
env:
|
|
||||||
GITHUB_BRANCH: ${{ github.head_ref || github.ref_name }}
|
|
||||||
GITHUB_SHA: ${{ github.sha }}
|
|
||||||
GCP_PROJECT: ${{ secrets.GCP_PROJECT }}
|
|
||||||
GCP_ZONE: ${{ secrets.GCP_ZONE }}
|
|
||||||
GCP_INSTANCE: ${{ secrets.GCP_INSTANCE }}
|
|
||||||
CLOUDSDK_CORE_DISABLE_PROMPTS: 1
|
|
||||||
run: |
|
|
||||||
read -r -d '' COMMAND <<EOF || true
|
|
||||||
echo "GITHUB_BRANCH: ${GITHUB_BRANCH}"
|
|
||||||
echo "GITHUB_SHA: ${GITHUB_SHA}"
|
|
||||||
export DOCKER_TAG="${GITHUB_SHA:0:7}" # needed for child process to access it
|
|
||||||
export OTELCOL_TAG="main"
|
|
||||||
export PATH="/usr/local/go/bin/:$PATH" # needed for Golang to work
|
|
||||||
docker system prune --force
|
|
||||||
docker pull signoz/signoz-otel-collector:main
|
|
||||||
docker pull signoz/signoz-schema-migrator:main
|
|
||||||
cd ~/signoz
|
|
||||||
git status
|
|
||||||
git add .
|
|
||||||
git stash push -m "stashed on $(date --iso-8601=seconds)"
|
|
||||||
git fetch origin
|
|
||||||
git checkout ${GITHUB_BRANCH}
|
|
||||||
git pull
|
|
||||||
make build-ee-query-service-amd64
|
|
||||||
make build-frontend-amd64
|
|
||||||
make run-testing
|
|
||||||
EOF
|
|
||||||
gcloud beta compute ssh ${GCP_INSTANCE} --zone ${GCP_ZONE} --ssh-key-expire-after=15m --tunnel-through-iap --project ${GCP_PROJECT} --command "${COMMAND}"
|
|
||||||
56
.github/workflows/testing-deployment.yaml
vendored
56
.github/workflows/testing-deployment.yaml
vendored
@@ -1,56 +0,0 @@
|
|||||||
name: testing-deployment
|
|
||||||
# Trigger deployment only on testing-deploy label on pull request
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
types: [labeled]
|
|
||||||
jobs:
|
|
||||||
deploy:
|
|
||||||
name: Deploy PR branch to testing
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
environment: testing
|
|
||||||
if: ${{ github.event.label.name == 'testing-deploy' }}
|
|
||||||
permissions:
|
|
||||||
contents: 'read'
|
|
||||||
id-token: 'write'
|
|
||||||
steps:
|
|
||||||
- id: 'auth'
|
|
||||||
uses: 'google-github-actions/auth@v2'
|
|
||||||
with:
|
|
||||||
workload_identity_provider: ${{ secrets.GCP_WORKLOAD_IDENTITY_PROVIDER }}
|
|
||||||
service_account: ${{ secrets.GCP_SERVICE_ACCOUNT }}
|
|
||||||
|
|
||||||
- name: 'sdk'
|
|
||||||
uses: 'google-github-actions/setup-gcloud@v2'
|
|
||||||
|
|
||||||
- name: 'ssh'
|
|
||||||
shell: bash
|
|
||||||
env:
|
|
||||||
GITHUB_BRANCH: ${{ github.head_ref || github.ref_name }}
|
|
||||||
GITHUB_SHA: ${{ github.sha }}
|
|
||||||
GCP_PROJECT: ${{ secrets.GCP_PROJECT }}
|
|
||||||
GCP_ZONE: ${{ secrets.GCP_ZONE }}
|
|
||||||
GCP_INSTANCE: ${{ secrets.GCP_INSTANCE }}
|
|
||||||
CLOUDSDK_CORE_DISABLE_PROMPTS: 1
|
|
||||||
run: |
|
|
||||||
read -r -d '' COMMAND <<EOF || true
|
|
||||||
echo "GITHUB_BRANCH: ${GITHUB_BRANCH}"
|
|
||||||
echo "GITHUB_SHA: ${GITHUB_SHA}"
|
|
||||||
export DOCKER_TAG="${GITHUB_SHA:0:7}" # needed for child process to access it
|
|
||||||
export DEV_BUILD="1"
|
|
||||||
export PATH="/usr/local/go/bin/:$PATH" # needed for Golang to work
|
|
||||||
docker system prune --force
|
|
||||||
cd ~/signoz
|
|
||||||
git status
|
|
||||||
git add .
|
|
||||||
git stash push -m "stashed on $(date --iso-8601=seconds)"
|
|
||||||
git fetch origin
|
|
||||||
git checkout develop
|
|
||||||
git pull
|
|
||||||
# This is added to include the scenerio when new commit in PR is force-pushed
|
|
||||||
git branch -D ${GITHUB_BRANCH}
|
|
||||||
git checkout --track origin/${GITHUB_BRANCH}
|
|
||||||
make build-ee-query-service-amd64
|
|
||||||
make build-frontend-amd64
|
|
||||||
make run-testing
|
|
||||||
EOF
|
|
||||||
gcloud beta compute ssh ${GCP_INSTANCE} --zone ${GCP_ZONE} --ssh-key-expire-after=15m --tunnel-through-iap --project ${GCP_PROJECT} --command "${COMMAND}"
|
|
||||||
162
.gitignore
vendored
162
.gitignore
vendored
@@ -52,8 +52,9 @@ ee/query-service/tests/test-deploy/data/
|
|||||||
/deploy/docker/clickhouse-setup/data/
|
/deploy/docker/clickhouse-setup/data/
|
||||||
/deploy/docker-swarm/clickhouse-setup/data/
|
/deploy/docker-swarm/clickhouse-setup/data/
|
||||||
bin/
|
bin/
|
||||||
|
.local/
|
||||||
*/query-service/queries.active
|
*/query-service/queries.active
|
||||||
|
ee/query-service/db
|
||||||
|
|
||||||
# e2e
|
# e2e
|
||||||
|
|
||||||
@@ -70,3 +71,162 @@ vendor/
|
|||||||
|
|
||||||
# git-town
|
# git-town
|
||||||
.git-branches.toml
|
.git-branches.toml
|
||||||
|
|
||||||
|
# goreleaser
|
||||||
|
dist/
|
||||||
|
|
||||||
|
# ignore user_scripts that is fetched by init-clickhouse
|
||||||
|
deploy/common/clickhouse/user_scripts/
|
||||||
|
|
||||||
|
queries.active
|
||||||
|
|
||||||
|
# tmp
|
||||||
|
**/tmp/**
|
||||||
|
|
||||||
|
# .devenv tmp files
|
||||||
|
.devenv/**/tmp/**
|
||||||
|
.qodo
|
||||||
|
|
||||||
|
### Python ###
|
||||||
|
# Byte-compiled / optimized / DLL files
|
||||||
|
__pycache__/
|
||||||
|
*.py[cod]
|
||||||
|
*$py.class
|
||||||
|
|
||||||
|
# C extensions
|
||||||
|
*.so
|
||||||
|
|
||||||
|
# Distribution / packaging
|
||||||
|
.Python
|
||||||
|
build/
|
||||||
|
develop-eggs/
|
||||||
|
dist/
|
||||||
|
downloads/
|
||||||
|
eggs/
|
||||||
|
.eggs/
|
||||||
|
lib/
|
||||||
|
lib64/
|
||||||
|
parts/
|
||||||
|
sdist/
|
||||||
|
var/
|
||||||
|
wheels/
|
||||||
|
share/python-wheels/
|
||||||
|
*.egg-info/
|
||||||
|
.installed.cfg
|
||||||
|
*.egg
|
||||||
|
MANIFEST
|
||||||
|
|
||||||
|
# PyInstaller
|
||||||
|
# Usually these files are written by a python script from a template
|
||||||
|
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||||
|
*.manifest
|
||||||
|
*.spec
|
||||||
|
|
||||||
|
# Installer logs
|
||||||
|
pip-log.txt
|
||||||
|
pip-delete-this-directory.txt
|
||||||
|
|
||||||
|
# Unit test / coverage reports
|
||||||
|
htmlcov/
|
||||||
|
.tox/
|
||||||
|
.nox/
|
||||||
|
.coverage
|
||||||
|
.coverage.*
|
||||||
|
.cache
|
||||||
|
nosetests.xml
|
||||||
|
coverage.xml
|
||||||
|
*.cover
|
||||||
|
*.py,cover
|
||||||
|
.hypothesis/
|
||||||
|
.pytest_cache/
|
||||||
|
cover/
|
||||||
|
|
||||||
|
# Translations
|
||||||
|
*.mo
|
||||||
|
*.pot
|
||||||
|
|
||||||
|
# Django stuff:
|
||||||
|
*.log
|
||||||
|
local_settings.py
|
||||||
|
db.sqlite3
|
||||||
|
db.sqlite3-journal
|
||||||
|
|
||||||
|
# Flask stuff:
|
||||||
|
instance/
|
||||||
|
.webassets-cache
|
||||||
|
|
||||||
|
# Scrapy stuff:
|
||||||
|
.scrapy
|
||||||
|
|
||||||
|
# Sphinx documentation
|
||||||
|
docs/_build/
|
||||||
|
|
||||||
|
# PyBuilder
|
||||||
|
.pybuilder/
|
||||||
|
target/
|
||||||
|
|
||||||
|
# Jupyter Notebook
|
||||||
|
.ipynb_checkpoints
|
||||||
|
|
||||||
|
# IPython
|
||||||
|
profile_default/
|
||||||
|
ipython_config.py
|
||||||
|
|
||||||
|
# Celery stuff
|
||||||
|
celerybeat-schedule
|
||||||
|
celerybeat.pid
|
||||||
|
|
||||||
|
# SageMath parsed files
|
||||||
|
*.sage.py
|
||||||
|
|
||||||
|
# Environments
|
||||||
|
.env
|
||||||
|
.venv
|
||||||
|
env/
|
||||||
|
venv/
|
||||||
|
ENV/
|
||||||
|
env.bak/
|
||||||
|
venv.bak/
|
||||||
|
|
||||||
|
# Spyder project settings
|
||||||
|
.spyderproject
|
||||||
|
.spyproject
|
||||||
|
|
||||||
|
# Rope project settings
|
||||||
|
.ropeproject
|
||||||
|
|
||||||
|
# mkdocs documentation
|
||||||
|
/site
|
||||||
|
|
||||||
|
# mypy
|
||||||
|
.mypy_cache/
|
||||||
|
.dmypy.json
|
||||||
|
dmypy.json
|
||||||
|
|
||||||
|
# Pyre type checker
|
||||||
|
.pyre/
|
||||||
|
|
||||||
|
# pytype static type analyzer
|
||||||
|
.pytype/
|
||||||
|
|
||||||
|
# Cython debug symbols
|
||||||
|
cython_debug/
|
||||||
|
|
||||||
|
# PyCharm
|
||||||
|
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
||||||
|
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
||||||
|
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
||||||
|
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
||||||
|
#.idea/
|
||||||
|
|
||||||
|
### Python Patch ###
|
||||||
|
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
|
||||||
|
poetry.toml
|
||||||
|
|
||||||
|
# ruff
|
||||||
|
.ruff_cache/
|
||||||
|
|
||||||
|
# LSP config files
|
||||||
|
pyrightconfig.json
|
||||||
|
|
||||||
|
# End of https://www.toptal.com/developers/gitignore/api/python
|
||||||
14
.gitpod.yml
14
.gitpod.yml
@@ -3,16 +3,10 @@
|
|||||||
|
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
- name: Run Script to Comment ut required lines
|
|
||||||
init: |
|
|
||||||
cd ./.scripts
|
|
||||||
sh commentLinesForSetup.sh
|
|
||||||
|
|
||||||
- name: Run Docker Images
|
- name: Run Docker Images
|
||||||
init: |
|
init: |
|
||||||
cd ./deploy
|
cd ./deploy/docker
|
||||||
sudo docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d
|
sudo docker compose up -d
|
||||||
# command:
|
|
||||||
|
|
||||||
- name: Run Frontend
|
- name: Run Frontend
|
||||||
init: |
|
init: |
|
||||||
@@ -22,10 +16,8 @@ tasks:
|
|||||||
yarn dev
|
yarn dev
|
||||||
|
|
||||||
ports:
|
ports:
|
||||||
- port: 3301
|
|
||||||
onOpen: open-browser
|
|
||||||
- port: 8080
|
- port: 8080
|
||||||
onOpen: ignore
|
onOpen: open-browser
|
||||||
- port: 9000
|
- port: 9000
|
||||||
onOpen: ignore
|
onOpen: ignore
|
||||||
- port: 8123
|
- port: 8123
|
||||||
|
|||||||
17
.versions/alpine
Normal file
17
.versions/alpine
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#### Auto generated by make docker-version-alpine. DO NOT EDIT! ####
|
||||||
|
amd64=029a752048e32e843bd6defe3841186fb8d19a28dae8ec287f433bb9d6d1ad85
|
||||||
|
unknown=5fea95373b9ec85974843f31446fa6a9df4492dddae4e1cb056193c34a20a5be
|
||||||
|
arm=b4aef1a899e0271f06d948c9a8fa626ecdb2202d3a178bc14775dd559e23df8e
|
||||||
|
unknown=a4d1e27e63a9d6353046eb25a2f0ec02945012b217f4364cd83a73fe6dfb0b15
|
||||||
|
arm=4fdafe217d0922f3c3e2b4f64cf043f8403a4636685cd9c51fea2cbd1f419740
|
||||||
|
unknown=7f21ac2018d95b2c51a5779c1d5ca6c327504adc3b0fdc747a6725d30b3f13c2
|
||||||
|
arm64=ea3c5a9671f7b3f7eb47eab06f73bc6591df978b0d5955689a9e6f943aa368c0
|
||||||
|
unknown=a8ba68c1a9e6eea8041b4b8f996c235163440808b9654a865976fdcbede0f433
|
||||||
|
386=dea9f02e103e837849f984d5679305c758aba7fea1b95b7766218597f61a05ab
|
||||||
|
unknown=3c6629bec05c8273a927d46b77428bf4a378dad911a0ae284887becdc149b734
|
||||||
|
ppc64le=0880443bffa028dfbbc4094a32dd6b7ac25684e4c0a3d50da9e0acae355c5eaf
|
||||||
|
unknown=bb48308f976b266e3ab39bbf9af84521959bd9c295d3c763690cf41f8df2a626
|
||||||
|
riscv64=d76e6fbe348ff20c2931bb7f101e49379648e026de95dd37f96e00ce1909dcf7
|
||||||
|
unknown=dd807544365f6dc187cbe6de0806adce2ea9de3e7124717d1d8e8b7a18b77b64
|
||||||
|
s390x=b815fadf80495594eb6296a6af0bc647ae5f193e0044e07acec7e5b378c9ce2d
|
||||||
|
unknown=74681be74a280a88abb53ff1e048eb1fb624b30d0066730df6d8afd02ba82e01
|
||||||
426
CONTRIBUTING.md
426
CONTRIBUTING.md
@@ -1,396 +1,80 @@
|
|||||||
# Contributing Guidelines
|
# Contributing Guidelines
|
||||||
|
|
||||||
## Welcome to SigNoz Contributing section 🎉
|
Thank you for your interest in contributing to our project! We greatly value feedback and contributions from our community. This document will guide you through the contribution process.
|
||||||
|
|
||||||
Hi there! We're thrilled that you'd like to contribute to this project, thank you for your interest. Whether it's a bug report, new feature, correction, or additional documentation, we greatly value feedback and contributions from our community.
|
## How can I contribute?
|
||||||
|
|
||||||
Please read through this document before submitting any issues or pull requests to ensure we have all the necessary information to effectively respond to your bug report or contribution.
|
### Finding Issues to Work On
|
||||||
|
- Check our [existing open issues](https://github.com/SigNoz/signoz/issues?q=is%3Aopen+is%3Aissue)
|
||||||
|
- Look for [good first issues](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to start with
|
||||||
|
- Review [recently closed issues](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aclosed) to avoid duplicates
|
||||||
|
|
||||||
- We accept contributions made to the [SigNoz `develop` branch]()
|
### Types of Contributions
|
||||||
- Find all SigNoz Docker Hub images here
|
|
||||||
- [signoz/frontend](https://hub.docker.com/r/signoz/frontend)
|
|
||||||
- [signoz/query-service](https://hub.docker.com/r/signoz/query-service)
|
|
||||||
- [signoz/otelcontribcol](https://hub.docker.com/r/signoz/otelcontribcol)
|
|
||||||
|
|
||||||
## Finding contributions to work on 💬
|
1. **Report Bugs**: Use our [Bug Report template](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=bug_report.md&title=)
|
||||||
|
2. **Request Features**: Submit using [Feature Request template](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=feature_request.md&title=)
|
||||||
|
3. **Improve Documentation**: Create an issue with the `documentation` label
|
||||||
|
4. **Report Performance Issues**: Use our [Performance Issue template](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=performance-issue-report.md&title=)
|
||||||
|
5. **Request Dashboards**: Submit using [Dashboard Request template](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=dashboard-template&projects=&template=request_dashboard.md&title=%5BDashboard+Request%5D+)
|
||||||
|
6. **Report Security Issues**: Follow our [Security Policy](https://github.com/SigNoz/signoz/security/policy)
|
||||||
|
7. **Join Discussions**: Participate in [project discussions](https://github.com/SigNoz/signoz/discussions)
|
||||||
|
|
||||||
Looking at the existing issues is a great way to find something to contribute on.
|
### Creating Helpful Issues
|
||||||
Also, have a look at these [good first issues label](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) to start with.
|
|
||||||
|
|
||||||
|
When creating issues, include:
|
||||||
|
|
||||||
## Sections:
|
- **For Feature Requests**:
|
||||||
- [General Instructions](#1-general-instructions-)
|
- Clear use case and requirements
|
||||||
- [For Creating Issue(s)](#11-for-creating-issues)
|
- Proposed solution or improvement
|
||||||
- [For Pull Requests(s)](#12-for-pull-requests)
|
- Any open questions or considerations
|
||||||
- [How to Contribute](#2-how-to-contribute-%EF%B8%8F)
|
|
||||||
- [Develop Frontend](#3-develop-frontend-)
|
|
||||||
- [Contribute to Frontend with Docker installation of SigNoz](#31-contribute-to-frontend-with-docker-installation-of-signoz)
|
|
||||||
- [Contribute to Frontend without installing SigNoz backend](#32-contribute-to-frontend-without-installing-signoz-backend)
|
|
||||||
- [Contribute to Backend (Query-Service)](#4-contribute-to-backend-query-service-)
|
|
||||||
- [To run ClickHouse setup](#41-to-run-clickhouse-setup-recommended-for-local-development)
|
|
||||||
- [Contribute to SigNoz Helm Chart](#5-contribute-to-signoz-helm-chart-)
|
|
||||||
- [To run helm chart for local development](#51-to-run-helm-chart-for-local-development)
|
|
||||||
- [Contribute to Dashboards](#6-contribute-to-dashboards-)
|
|
||||||
- [Other Ways to Contribute](#other-ways-to-contribute)
|
|
||||||
|
|
||||||
# 1. General Instructions 📝
|
- **For Bug Reports**:
|
||||||
|
- Step-by-step reproduction steps
|
||||||
|
- Version information
|
||||||
|
- Relevant environment details
|
||||||
|
- Any modifications you've made
|
||||||
|
- Expected vs actual behavior
|
||||||
|
|
||||||
## 1.1 For Creating Issue(s)
|
### Submitting Pull Requests
|
||||||
Before making any significant changes and before filing a new issue, please check [existing open](https://github.com/SigNoz/signoz/issues?q=is%3Aopen+is%3Aissue), or [recently closed](https://github.com/SigNoz/signoz/issues?q=is%3Aissue+is%3Aclosed) issues to make sure somebody else hasn't already reported the issue. Please try to include as much information as you can.
|
|
||||||
|
|
||||||
**Issue Types** - [Bug Report](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=bug_report.md&title=) | [Feature Request](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=feature_request.md&title=) | [Performance Issue Report](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=performance-issue-report.md&title=) | [Request Dashboard](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=dashboard-template&projects=&template=request_dashboard.md&title=%5BDashboard+Request%5D+) | [Report a Security Vulnerability](https://github.com/SigNoz/signoz/security/policy)
|
1. **Development**:
|
||||||
|
- Setup your [development environment](docs/contributing/development.md)
|
||||||
|
- Work against the latest `main` branch
|
||||||
|
- Focus on specific changes
|
||||||
|
- Ensure all tests pass locally
|
||||||
|
- Follow our [commit convention](#commit-convention)
|
||||||
|
|
||||||
#### Details like these are incredibly useful:
|
2. **Submit PR**:
|
||||||
|
- Ensure your branch can be auto-merged
|
||||||
|
- Address any CI failures
|
||||||
|
- Respond to review comments promptly
|
||||||
|
|
||||||
- **Requirement** - what kind of use case are you trying to solve?
|
For substantial changes, please split your contribution into multiple PRs:
|
||||||
- **Proposal** - what do you suggest to solve the problem or improve the existing
|
|
||||||
situation?
|
|
||||||
- Any open questions to address❓
|
|
||||||
|
|
||||||
#### If you are reporting a bug, details like these are incredibly useful:
|
1. First PR: Overall structure (README, configurations, interfaces)
|
||||||
|
2. Second PR: Core implementation (split further if needed)
|
||||||
|
3. Final PR: Documentation updates and end-to-end tests
|
||||||
|
|
||||||
- A reproducible test case or series of steps.
|
### Commit Convention
|
||||||
- The version of our code being used.
|
|
||||||
- Any modifications you've made relevant to the bug🐞.
|
|
||||||
- Anything unusual about your environment or deployment.
|
|
||||||
|
|
||||||
Discussing your proposed changes ahead of time will make the contribution
|
We follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/). All commits and PRs should include type specifiers (e.g., `feat:`, `fix:`, `docs:`, etc.).
|
||||||
process smooth for everyone 🙌.
|
|
||||||
|
|
||||||
**[`^top^`](#contributing-guidelines)**
|
## How can I contribute to other repositories?
|
||||||
|
|
||||||
<hr>
|
You can find other repositories in the [SigNoz](https://github.com/SigNoz) organization to contribute to. Here is a list of **highlighted** repositories:
|
||||||
|
|
||||||
## 1.2 For Pull Request(s)
|
- [charts](https://github.com/SigNoz/charts)
|
||||||
|
- [dashboards](https://github.com/SigNoz/dashboards)
|
||||||
|
|
||||||
Contributions via pull requests are much appreciated. Once the approach is agreed upon ✅, make your changes and open a Pull Request(s).
|
Each repository has its own contributing guidelines. Please refer to the guidelines of the repository you want to contribute to.
|
||||||
Before sending us a pull request, please ensure that,
|
|
||||||
|
|
||||||
- Fork the SigNoz repo on GitHub, clone it on your machine.
|
## How can I get help?
|
||||||
- Create a branch with your changes.
|
|
||||||
- You are working against the latest source on the `develop` branch.
|
|
||||||
- Modify the source; please focus only on the specific change you are contributing.
|
|
||||||
- Ensure local tests pass.
|
|
||||||
- Commit to your fork using clear commit messages.
|
|
||||||
- Send us a pull request, answering any default questions in the pull request interface.
|
|
||||||
- Pay attention to any automated CI failures reported in the pull request, and stay involved in the conversation
|
|
||||||
- Once you've pushed your commits to GitHub, make sure that your branch can be auto-merged (there are no merge conflicts). If not, on your computer, merge main into your branch, resolve any merge conflicts, make sure everything still runs correctly and passes all the tests, and then push up those changes.
|
|
||||||
- Once the change has been approved and merged, we will inform you in a comment.
|
|
||||||
|
|
||||||
|
Need assistance? Join our Slack community:
|
||||||
|
- [`#contributing`](https://signoz-community.slack.com/archives/C01LWQ8KS7M)
|
||||||
|
- [`#contributing-frontend`](https://signoz-community.slack.com/archives/C027134DM8B)
|
||||||
|
|
||||||
GitHub provides additional document on [forking a repository](https://help.github.com/articles/fork-a-repo/) and
|
## Where do I go from here?
|
||||||
[creating a pull request](https://help.github.com/articles/creating-a-pull-request/).
|
|
||||||
|
|
||||||
**Note:** Unless your change is small, **please** consider submitting different Pull Request(s):
|
- Set up your [development environment](docs/contributing/development.md)
|
||||||
|
- Deploy and observe [SigNoz in action with OpenTelemetry Demo Application](docs/otel-demo-docs.md)
|
||||||
* 1️⃣ First PR should include the overall structure of the new component:
|
|
||||||
* Readme, configuration, interfaces or base classes, etc...
|
|
||||||
* This PR is usually trivial to review, so the size limit does not apply to
|
|
||||||
it.
|
|
||||||
* 2️⃣ Second PR should include the concrete implementation of the component. If the
|
|
||||||
size of this PR is larger than the recommended size, consider **splitting** ⚔️ it into
|
|
||||||
multiple PRs.
|
|
||||||
* If there are multiple sub-component then ideally each one should be implemented as
|
|
||||||
a **separate** pull request.
|
|
||||||
* Last PR should include changes to **any user-facing documentation.** And should include
|
|
||||||
end-to-end tests if applicable. The component must be enabled
|
|
||||||
only after sufficient testing, and there is enough confidence in the
|
|
||||||
stability and quality of the component.
|
|
||||||
|
|
||||||
|
|
||||||
You can always reach out to `ankit@signoz.io` to understand more about the repo and product. We are very responsive over email and [slack community](https://signoz.io/slack).
|
|
||||||
|
|
||||||
### Pointers:
|
|
||||||
- If you find any **bugs** → please create an [**issue.**](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=bug_report.md&title=)
|
|
||||||
- If you find anything **missing** in documentation → you can create an issue with the label **`documentation`**.
|
|
||||||
- If you want to build any **new feature** → please create an [issue with the label **`enhancement`**.](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=&template=feature_request.md&title=)
|
|
||||||
- If you want to **discuss** something about the product, start a new [**discussion**.](https://github.com/SigNoz/signoz/discussions)
|
|
||||||
- If you want to request a new **dashboard template** → please create an issue [here](https://github.com/SigNoz/signoz/issues/new?assignees=&labels=dashboard-template&projects=&template=request_dashboard.md&title=%5BDashboard+Request%5D+).
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
### Conventions to follow when submitting Commits and Pull Request(s).
|
|
||||||
|
|
||||||
We try to follow [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/), more specifically the commits and PRs **should have type specifiers** prefixed in the name. [This](https://www.conventionalcommits.org/en/v1.0.0/#specification) should give you a better idea.
|
|
||||||
|
|
||||||
e.g. If you are submitting a fix for an issue in frontend, the PR name should be prefixed with **`fix(FE):`**
|
|
||||||
|
|
||||||
- Follow [GitHub Flow](https://guides.github.com/introduction/flow/) guidelines for your contribution flows.
|
|
||||||
|
|
||||||
- Feel free to ping us on [`#contributing`](https://signoz-community.slack.com/archives/C01LWQ8KS7M) or [`#contributing-frontend`](https://signoz-community.slack.com/archives/C027134DM8B) on our slack community if you need any help on this :)
|
|
||||||
|
|
||||||
**[`^top^`](#contributing-guidelines)**
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
# 2. How to Contribute 🙋🏻♂️
|
|
||||||
|
|
||||||
#### There are primarily 2 areas in which you can contribute to SigNoz
|
|
||||||
|
|
||||||
- [**Frontend**](#3-develop-frontend-) (Written in Typescript, React)
|
|
||||||
- [**Backend**](#4-contribute-to-backend-query-service-) (Query Service, written in Go)
|
|
||||||
- [**Dashboard Templates**](#6-contribute-to-dashboards-) (JSON dashboard templates built with SigNoz)
|
|
||||||
|
|
||||||
Depending upon your area of expertise & interest, you can choose one or more to contribute. Below are detailed instructions to contribute in each area.
|
|
||||||
|
|
||||||
**Please note:** If you want to work on an issue, please add a brief description of your solution on the issue before starting work on it.
|
|
||||||
|
|
||||||
**[`^top^`](#contributing-guidelines)**
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
# 3. Develop Frontend 🌚
|
|
||||||
|
|
||||||
**Need to Update: [https://github.com/SigNoz/signoz/tree/develop/frontend](https://github.com/SigNoz/signoz/tree/develop/frontend)**
|
|
||||||
|
|
||||||
Also, have a look at [Frontend README.md](https://github.com/SigNoz/signoz/blob/develop/frontend/README.md) sections for more info on how to setup SigNoz frontend locally (with and without Docker).
|
|
||||||
|
|
||||||
## 3.1 Contribute to Frontend with Docker installation of SigNoz
|
|
||||||
|
|
||||||
- Clone the SigNoz repository and cd into signoz directory,
|
|
||||||
```
|
|
||||||
git clone https://github.com/SigNoz/signoz.git && cd signoz
|
|
||||||
```
|
|
||||||
- Comment out `frontend` service section at [`deploy/docker/clickhouse-setup/docker-compose.yaml#L68`](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml#L68)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
|
|
||||||
- run `cd deploy` to move to deploy directory,
|
|
||||||
- Install signoz locally **without** the frontend,
|
|
||||||
- Add / Uncomment the below configuration to query-service section at [`deploy/docker/clickhouse-setup/docker-compose.yaml#L47`](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml#L47)
|
|
||||||
```
|
|
||||||
ports:
|
|
||||||
- "8080:8080"
|
|
||||||
```
|
|
||||||
<img width="869" alt="query service" src="https://user-images.githubusercontent.com/52788043/179010251-8489be31-04ca-42f8-b30d-ef0bb6accb6b.png">
|
|
||||||
|
|
||||||
- Next run,
|
|
||||||
```
|
|
||||||
sudo docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d
|
|
||||||
```
|
|
||||||
- `cd ../frontend` and change baseURL in file [`frontend/src/constants/env.ts#L2`](https://github.com/SigNoz/signoz/blob/develop/frontend/src/constants/env.ts#L2) and for that, you need to create a `.env` file in the `frontend` directory with the following environment variable (`FRONTEND_API_ENDPOINT`) matching your configuration.
|
|
||||||
|
|
||||||
If you have backend api exposed via frontend nginx:
|
|
||||||
```
|
|
||||||
FRONTEND_API_ENDPOINT=http://localhost:3301
|
|
||||||
```
|
|
||||||
If not:
|
|
||||||
```
|
|
||||||
FRONTEND_API_ENDPOINT=http://localhost:8080
|
|
||||||
```
|
|
||||||
|
|
||||||
- Next,
|
|
||||||
```
|
|
||||||
yarn install
|
|
||||||
yarn dev
|
|
||||||
```
|
|
||||||
|
|
||||||
### Important Notes:
|
|
||||||
The Maintainers / Contributors who will change Line Numbers of `Frontend` & `Query-Section`, please update line numbers in [`/.scripts/commentLinesForSetup.sh`](https://github.com/SigNoz/signoz/blob/develop/.scripts/commentLinesForSetup.sh)
|
|
||||||
|
|
||||||
**[`^top^`](#contributing-guidelines)**
|
|
||||||
|
|
||||||
## 3.2 Contribute to Frontend without installing SigNoz backend
|
|
||||||
|
|
||||||
If you don't want to install the SigNoz backend just for doing frontend development, we can provide you with test environments that you can use as the backend.
|
|
||||||
|
|
||||||
- Clone the SigNoz repository and cd into signoz/frontend directory,
|
|
||||||
```
|
|
||||||
git clone https://github.com/SigNoz/signoz.git && cd signoz/frontend
|
|
||||||
````
|
|
||||||
- Create a file `.env` in the `frontend` directory with `FRONTEND_API_ENDPOINT=<test environment URL>`
|
|
||||||
- Next,
|
|
||||||
```
|
|
||||||
yarn install
|
|
||||||
yarn dev
|
|
||||||
```
|
|
||||||
|
|
||||||
Please ping us in the [`#contributing`](https://signoz-community.slack.com/archives/C01LWQ8KS7M) channel or ask `@Prashant Shahi` in our [Slack Community](https://signoz.io/slack) and we will DM you with `<test environment URL>`.
|
|
||||||
|
|
||||||
**Frontend should now be accessible at** [`http://localhost:3301/services`](http://localhost:3301/services)
|
|
||||||
|
|
||||||
**[`^top^`](#contributing-guidelines)**
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
# 4. Contribute to Backend (Query-Service) 🌑
|
|
||||||
|
|
||||||
**Need to Update: [https://github.com/SigNoz/signoz/tree/develop/pkg/query-service](https://github.com/SigNoz/signoz/tree/develop/pkg/query-service)**
|
|
||||||
|
|
||||||
## 4.1 Prerequisites
|
|
||||||
|
|
||||||
### 4.1.1 Install SQLite3
|
|
||||||
|
|
||||||
- Run `sqlite3` command to check if you already have SQLite3 installed on your machine.
|
|
||||||
|
|
||||||
- If not installed already, Install using below command
|
|
||||||
- on Linux
|
|
||||||
- on Debian / Ubuntu
|
|
||||||
```
|
|
||||||
sudo apt install sqlite3
|
|
||||||
```
|
|
||||||
- on CentOS / Fedora / RedHat
|
|
||||||
```
|
|
||||||
sudo yum install sqlite3
|
|
||||||
```
|
|
||||||
|
|
||||||
## 4.2 To run ClickHouse setup (recommended for local development)
|
|
||||||
|
|
||||||
- Clone the SigNoz repository and cd into signoz directory,
|
|
||||||
```
|
|
||||||
git clone https://github.com/SigNoz/signoz.git && cd signoz
|
|
||||||
```
|
|
||||||
- run `sudo make dev-setup` to configure local setup to run query-service,
|
|
||||||
- Comment out `frontend` service section at [`deploy/docker/clickhouse-setup/docker-compose.yaml#L68`](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml#L68)
|
|
||||||
<img width="982" alt="develop-frontend" src="https://user-images.githubusercontent.com/52788043/179043977-012be8b0-a2ed-40d1-b2e6-2ab72d7989c0.png">
|
|
||||||
|
|
||||||
- Comment out `query-service` section at [`deploy/docker/clickhouse-setup/docker-compose.yaml#L41`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml#L41)
|
|
||||||
<img width="1068" alt="Screenshot 2022-07-14 at 22 48 07" src="https://user-images.githubusercontent.com/52788043/179044151-a65ba571-db0b-4a16-b64b-ca3fadcf3af0.png">
|
|
||||||
|
|
||||||
- add below configuration to `clickhouse` section at [`deploy/docker/clickhouse-setup/docker-compose.yaml`,](https://github.com/SigNoz/signoz/blob/develop/deploy/docker/clickhouse-setup/docker-compose.yaml)
|
|
||||||
```
|
|
||||||
ports:
|
|
||||||
- 9001:9000
|
|
||||||
```
|
|
||||||
<img width="1013" alt="Screenshot 2022-07-14 at 22 50 37" src="https://user-images.githubusercontent.com/52788043/179044544-a293d3bc-4c4f-49ea-a276-505a381de67d.png">
|
|
||||||
|
|
||||||
- run `cd pkg/query-service/` to move to `query-service` directory,
|
|
||||||
- Then, you need to create a `.env` file with the following environment variable
|
|
||||||
```
|
|
||||||
SIGNOZ_LOCAL_DB_PATH="./signoz.db"
|
|
||||||
```
|
|
||||||
to set your local environment with the right `RELATIONAL_DATASOURCE_PATH` as mentioned in [`./constants/constants.go#L38`,](https://github.com/SigNoz/signoz/blob/develop/pkg/query-service/constants/constants.go#L38)
|
|
||||||
|
|
||||||
- Now, install SigNoz locally **without** the `frontend` and `query-service`,
|
|
||||||
- If you are using `x86_64` processors (All Intel/AMD processors) run `sudo make run-x86`
|
|
||||||
- If you are on `arm64` processors (Apple M1 Macs) run `sudo make run-arm`
|
|
||||||
|
|
||||||
#### Run locally,
|
|
||||||
```
|
|
||||||
ClickHouseUrl=tcp://localhost:9001 STORAGE=clickhouse go run main.go
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Build and Run locally
|
|
||||||
```
|
|
||||||
cd pkg/query-service
|
|
||||||
go build -o build/query-service main.go
|
|
||||||
ClickHouseUrl=tcp://localhost:9001 STORAGE=clickhouse build/query-service
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Docker Images
|
|
||||||
The docker images of query-service is available at https://hub.docker.com/r/signoz/query-service
|
|
||||||
|
|
||||||
```
|
|
||||||
docker pull signoz/query-service
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
docker pull signoz/query-service:latest
|
|
||||||
```
|
|
||||||
|
|
||||||
```
|
|
||||||
docker pull signoz/query-service:develop
|
|
||||||
```
|
|
||||||
|
|
||||||
### Important Note:
|
|
||||||
The Maintainers / Contributors who will change Line Numbers of `Frontend` & `Query-Section`, please update line numbers in [`/.scripts/commentLinesForSetup.sh`](https://github.com/SigNoz/signoz/blob/develop/.scripts/commentLinesForSetup.sh)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**Query Service should now be available at** [`http://localhost:8080`](http://localhost:8080)
|
|
||||||
|
|
||||||
If you want to see how the frontend plays with query service, you can run the frontend also in your local env with the baseURL changed to `http://localhost:8080` in file [`frontend/src/constants/env.ts`](https://github.com/SigNoz/signoz/blob/develop/frontend/src/constants/env.ts) as the `query-service` is now running at port `8080`.
|
|
||||||
|
|
||||||
<!-- Instead of configuring a local setup, you can also use [Gitpod](https://www.gitpod.io/), a VSCode-based Web IDE.
|
|
||||||
|
|
||||||
Click the button below. A workspace with all required environments will be created.
|
|
||||||
|
|
||||||
[](https://gitpod.io/#https://github.com/SigNoz/signoz)
|
|
||||||
|
|
||||||
> To use it on your forked repo, edit the 'Open in Gitpod' button URL to `https://gitpod.io/#https://github.com/<your-github-username>/signoz` -->
|
|
||||||
|
|
||||||
**[`^top^`](#contributing-guidelines)**
|
|
||||||
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
# 5. Contribute to SigNoz Helm Chart 📊
|
|
||||||
|
|
||||||
**Need to Update: [https://github.com/SigNoz/charts](https://github.com/SigNoz/charts).**
|
|
||||||
|
|
||||||
## 5.1 To run helm chart for local development
|
|
||||||
|
|
||||||
- Clone the SigNoz repository and cd into charts directory,
|
|
||||||
```
|
|
||||||
git clone https://github.com/SigNoz/charts.git && cd charts
|
|
||||||
```
|
|
||||||
- It is recommended to use lightweight kubernetes (k8s) cluster for local development:
|
|
||||||
- [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation)
|
|
||||||
- [k3d](https://k3d.io/#installation)
|
|
||||||
- [minikube](https://minikube.sigs.k8s.io/docs/start/)
|
|
||||||
- create a k8s cluster and make sure `kubectl` points to the locally created k8s cluster,
|
|
||||||
- run `make dev-install` to install SigNoz chart with `my-release` release name in `platform` namespace,
|
|
||||||
- next run,
|
|
||||||
```
|
|
||||||
kubectl -n platform port-forward svc/my-release-signoz-frontend 3301:3301
|
|
||||||
```
|
|
||||||
to make SigNoz UI available at [localhost:3301](http://localhost:3301)
|
|
||||||
|
|
||||||
**5.1.1 To install the HotROD sample app:**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -sL https://github.com/SigNoz/signoz/raw/develop/sample-apps/hotrod/hotrod-install.sh \
|
|
||||||
| HELM_RELEASE=my-release SIGNOZ_NAMESPACE=platform bash
|
|
||||||
```
|
|
||||||
|
|
||||||
**5.1.2 To load data with the HotROD sample app:**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
kubectl -n sample-application run strzal --image=djbingham/curl \
|
|
||||||
--restart='OnFailure' -i --tty --rm --command -- curl -X POST -F \
|
|
||||||
'user_count=6' -F 'spawn_rate=2' http://locust-master:8089/swarm
|
|
||||||
```
|
|
||||||
|
|
||||||
**5.1.3 To stop the load generation:**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
kubectl -n sample-application run strzal --image=djbingham/curl \
|
|
||||||
--restart='OnFailure' -i --tty --rm --command -- curl \
|
|
||||||
http://locust-master:8089/stop
|
|
||||||
```
|
|
||||||
|
|
||||||
**5.1.4 To delete the HotROD sample app:**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -sL https://github.com/SigNoz/signoz/raw/develop/sample-apps/hotrod/hotrod-delete.sh \
|
|
||||||
| HOTROD_NAMESPACE=sample-application bash
|
|
||||||
```
|
|
||||||
|
|
||||||
**[`^top^`](#contributing-guidelines)**
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
# 6. Contribute to Dashboards 📈
|
|
||||||
|
|
||||||
**Need to Update: [https://github.com/SigNoz/dashboards](https://github.com/SigNoz/dashboards)**
|
|
||||||
|
|
||||||
To contribute a new dashboard template for any service, follow the contribution guidelines in the [Dashboard Contributing Guide](https://github.com/SigNoz/dashboards/blob/main/CONTRIBUTING.md). In brief:
|
|
||||||
|
|
||||||
1. Create a dashboard JSON file.
|
|
||||||
2. Add a README file explaining the dashboard, the metrics ingested, and the configurations needed.
|
|
||||||
3. Include screenshots of the dashboard in the `assets/` directory.
|
|
||||||
4. Submit a pull request for review.
|
|
||||||
|
|
||||||
## Other Ways to Contribute
|
|
||||||
|
|
||||||
There are many other ways to get involved with the community and to participate in this project:
|
|
||||||
|
|
||||||
- Use the product, submitting GitHub issues when a problem is found.
|
|
||||||
- Help code review pull requests and participate in issue threads.
|
|
||||||
- Submit a new feature request as an issue.
|
|
||||||
- Help answer questions on forums such as Stack Overflow and [SigNoz Community Slack Channel](https://signoz.io/slack).
|
|
||||||
- Tell others about the project on Twitter, your blog, etc.
|
|
||||||
|
|
||||||
Again, Feel free to ping us on [`#contributing`](https://signoz-community.slack.com/archives/C01LWQ8KS7M) or [`#contributing-frontend`](https://signoz-community.slack.com/archives/C027134DM8B) on our slack community if you need any help on this :)
|
|
||||||
|
|
||||||
Thank You!
|
|
||||||
|
|||||||
368
Makefile
368
Makefile
@@ -1,200 +1,204 @@
|
|||||||
#
|
##############################################################
|
||||||
# Reference Guide - https://www.gnu.org/software/make/manual/make.html
|
# variables
|
||||||
#
|
##############################################################
|
||||||
|
SHELL := /bin/bash
|
||||||
|
SRC ?= $(shell pwd)
|
||||||
|
NAME ?= signoz
|
||||||
|
OS ?= $(shell uname -s | tr '[A-Z]' '[a-z]')
|
||||||
|
ARCH ?= $(shell uname -m | sed 's/x86_64/amd64/g' | sed 's/aarch64/arm64/g')
|
||||||
|
COMMIT_SHORT_SHA ?= $(shell git rev-parse --short HEAD)
|
||||||
|
BRANCH_NAME ?= $(subst /,-,$(shell git rev-parse --abbrev-ref HEAD))
|
||||||
|
VERSION ?= $(BRANCH_NAME)-$(COMMIT_SHORT_SHA)
|
||||||
|
TIMESTAMP ?= $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
|
||||||
|
ARCHS ?= amd64 arm64
|
||||||
|
TARGET_DIR ?= $(shell pwd)/target
|
||||||
|
|
||||||
# Build variables
|
ZEUS_URL ?= https://api.signoz.cloud
|
||||||
BUILD_VERSION ?= $(shell git describe --always --tags)
|
GO_BUILD_LDFLAG_ZEUS_URL = -X github.com/SigNoz/signoz/ee/zeus.url=$(ZEUS_URL)
|
||||||
BUILD_HASH ?= $(shell git rev-parse --short HEAD)
|
LICENSE_URL ?= https://license.signoz.io
|
||||||
BUILD_TIME ?= $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
|
GO_BUILD_LDFLAG_LICENSE_SIGNOZ_IO = -X github.com/SigNoz/signoz/ee/zeus.deprecatedURL=$(LICENSE_URL)
|
||||||
BUILD_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD)
|
|
||||||
DEV_LICENSE_SIGNOZ_IO ?= https://staging-license.signoz.io/api/v1
|
|
||||||
DEV_BUILD ?= "" # set to any non-empty value to enable dev build
|
|
||||||
|
|
||||||
# Internal variables or constants.
|
GO_BUILD_VERSION_LDFLAGS = -X github.com/SigNoz/signoz/pkg/version.version=$(VERSION) -X github.com/SigNoz/signoz/pkg/version.hash=$(COMMIT_SHORT_SHA) -X github.com/SigNoz/signoz/pkg/version.time=$(TIMESTAMP) -X github.com/SigNoz/signoz/pkg/version.branch=$(BRANCH_NAME)
|
||||||
FRONTEND_DIRECTORY ?= frontend
|
GO_BUILD_ARCHS_COMMUNITY = $(addprefix go-build-community-,$(ARCHS))
|
||||||
QUERY_SERVICE_DIRECTORY ?= pkg/query-service
|
GO_BUILD_CONTEXT_COMMUNITY = $(SRC)/pkg/query-service
|
||||||
EE_QUERY_SERVICE_DIRECTORY ?= ee/query-service
|
GO_BUILD_LDFLAGS_COMMUNITY = $(GO_BUILD_VERSION_LDFLAGS) -X github.com/SigNoz/signoz/pkg/version.variant=community
|
||||||
STANDALONE_DIRECTORY ?= deploy/docker/clickhouse-setup
|
GO_BUILD_ARCHS_ENTERPRISE = $(addprefix go-build-enterprise-,$(ARCHS))
|
||||||
SWARM_DIRECTORY ?= deploy/docker-swarm/clickhouse-setup
|
GO_BUILD_ARCHS_ENTERPRISE_RACE = $(addprefix go-build-enterprise-race-,$(ARCHS))
|
||||||
|
GO_BUILD_CONTEXT_ENTERPRISE = $(SRC)/ee/query-service
|
||||||
|
GO_BUILD_LDFLAGS_ENTERPRISE = $(GO_BUILD_VERSION_LDFLAGS) -X github.com/SigNoz/signoz/pkg/version.variant=enterprise $(GO_BUILD_LDFLAG_ZEUS_URL) $(GO_BUILD_LDFLAG_LICENSE_SIGNOZ_IO)
|
||||||
|
|
||||||
GOOS ?= $(shell go env GOOS)
|
DOCKER_BUILD_ARCHS_COMMUNITY = $(addprefix docker-build-community-,$(ARCHS))
|
||||||
GOARCH ?= $(shell go env GOARCH)
|
DOCKERFILE_COMMUNITY = $(SRC)/pkg/query-service/Dockerfile
|
||||||
GOPATH ?= $(shell go env GOPATH)
|
DOCKER_REGISTRY_COMMUNITY ?= docker.io/signoz/signoz-community
|
||||||
|
DOCKER_BUILD_ARCHS_ENTERPRISE = $(addprefix docker-build-enterprise-,$(ARCHS))
|
||||||
|
DOCKERFILE_ENTERPRISE = $(SRC)/ee/query-service/Dockerfile
|
||||||
|
DOCKER_REGISTRY_ENTERPRISE ?= docker.io/signoz/signoz
|
||||||
|
JS_BUILD_CONTEXT = $(SRC)/frontend
|
||||||
|
|
||||||
REPONAME ?= signoz
|
##############################################################
|
||||||
DOCKER_TAG ?= $(subst v,,$(BUILD_VERSION))
|
# directories
|
||||||
FRONTEND_DOCKER_IMAGE ?= frontend
|
##############################################################
|
||||||
QUERY_SERVICE_DOCKER_IMAGE ?= query-service
|
$(TARGET_DIR):
|
||||||
|
mkdir -p $(TARGET_DIR)
|
||||||
|
|
||||||
# Build-time Go variables
|
##############################################################
|
||||||
PACKAGE?=go.signoz.io/signoz
|
# common commands
|
||||||
buildVersion=${PACKAGE}/pkg/query-service/version.buildVersion
|
##############################################################
|
||||||
buildHash=${PACKAGE}/pkg/query-service/version.buildHash
|
.PHONY: help
|
||||||
buildTime=${PACKAGE}/pkg/query-service/version.buildTime
|
help: ## Displays help.
|
||||||
gitBranch=${PACKAGE}/pkg/query-service/version.gitBranch
|
@awk 'BEGIN {FS = ":.*##"; printf "\nUsage:\n make \033[36m<target>\033[0m\n\nTargets:\n"} /^[a-z0-9A-Z_-]+:.*?##/ { printf " \033[36m%-40s\033[0m %s\n", $$1, $$2 }' $(MAKEFILE_LIST)
|
||||||
licenseSignozIo=${PACKAGE}/ee/query-service/constants.LicenseSignozIo
|
|
||||||
|
|
||||||
LD_FLAGS=-X ${buildHash}=${BUILD_HASH} -X ${buildTime}=${BUILD_TIME} -X ${buildVersion}=${BUILD_VERSION} -X ${gitBranch}=${BUILD_BRANCH}
|
##############################################################
|
||||||
DEV_LD_FLAGS=-X ${licenseSignozIo}=${DEV_LICENSE_SIGNOZ_IO}
|
# devenv commands
|
||||||
|
##############################################################
|
||||||
|
.PHONY: devenv-clickhouse
|
||||||
|
devenv-clickhouse: ## Run clickhouse in devenv
|
||||||
|
@cd .devenv/docker/clickhouse; \
|
||||||
|
docker compose -f compose.yaml up -d
|
||||||
|
|
||||||
all: build-push-frontend build-push-query-service
|
.PHONY: devenv-postgres
|
||||||
|
devenv-postgres: ## Run postgres in devenv
|
||||||
|
@cd .devenv/docker/postgres; \
|
||||||
|
docker compose -f compose.yaml up -d
|
||||||
|
|
||||||
# Steps to build static files of frontend
|
##############################################################
|
||||||
build-frontend-static:
|
# go commands
|
||||||
@echo "------------------"
|
##############################################################
|
||||||
@echo "--> Building frontend static files"
|
.PHONY: go-run-enterprise
|
||||||
@echo "------------------"
|
go-run-enterprise: ## Runs the enterprise go backend server
|
||||||
@cd $(FRONTEND_DIRECTORY) && \
|
@SIGNOZ_INSTRUMENTATION_LOGS_LEVEL=debug \
|
||||||
rm -rf build && \
|
SIGNOZ_SQLSTORE_SQLITE_PATH=signoz.db \
|
||||||
CI=1 yarn install && \
|
SIGNOZ_WEB_ENABLED=false \
|
||||||
yarn build && \
|
SIGNOZ_JWT_SECRET=secret \
|
||||||
ls -l build
|
SIGNOZ_ALERTMANAGER_PROVIDER=signoz \
|
||||||
|
SIGNOZ_TELEMETRYSTORE_PROVIDER=clickhouse \
|
||||||
|
SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://127.0.0.1:9000 \
|
||||||
|
go run -race \
|
||||||
|
$(GO_BUILD_CONTEXT_ENTERPRISE)/main.go \
|
||||||
|
--config ./conf/prometheus.yml \
|
||||||
|
--cluster cluster \
|
||||||
|
--use-logs-new-schema true \
|
||||||
|
--use-trace-new-schema true
|
||||||
|
|
||||||
# Steps to build and push docker image of frontend
|
.PHONY: go-test
|
||||||
.PHONY: build-frontend-amd64 build-push-frontend
|
go-test: ## Runs go unit tests
|
||||||
# Step to build docker image of frontend in amd64 (used in build pipeline)
|
@go test -race ./...
|
||||||
build-frontend-amd64: build-frontend-static
|
|
||||||
@echo "------------------"
|
|
||||||
@echo "--> Building frontend docker image for amd64"
|
|
||||||
@echo "------------------"
|
|
||||||
@cd $(FRONTEND_DIRECTORY) && \
|
|
||||||
docker build --file Dockerfile -t $(REPONAME)/$(FRONTEND_DOCKER_IMAGE):$(DOCKER_TAG) \
|
|
||||||
--build-arg TARGETPLATFORM="linux/amd64" .
|
|
||||||
|
|
||||||
# Step to build and push docker image of frontend(used in push pipeline)
|
.PHONY: go-run-community
|
||||||
build-push-frontend: build-frontend-static
|
go-run-community: ## Runs the community go backend server
|
||||||
@echo "------------------"
|
@SIGNOZ_INSTRUMENTATION_LOGS_LEVEL=debug \
|
||||||
@echo "--> Building and pushing frontend docker image"
|
SIGNOZ_SQLSTORE_SQLITE_PATH=signoz.db \
|
||||||
@echo "------------------"
|
SIGNOZ_WEB_ENABLED=false \
|
||||||
@cd $(FRONTEND_DIRECTORY) && \
|
SIGNOZ_JWT_SECRET=secret \
|
||||||
docker buildx build --file Dockerfile --progress plain --push --platform linux/arm64,linux/amd64 \
|
SIGNOZ_ALERTMANAGER_PROVIDER=signoz \
|
||||||
--tag $(REPONAME)/$(FRONTEND_DOCKER_IMAGE):$(DOCKER_TAG) .
|
SIGNOZ_TELEMETRYSTORE_PROVIDER=clickhouse \
|
||||||
|
SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://127.0.0.1:9000 \
|
||||||
|
go run -race \
|
||||||
|
$(GO_BUILD_CONTEXT_COMMUNITY)/main.go \
|
||||||
|
--config ./conf/prometheus.yml \
|
||||||
|
--cluster cluster \
|
||||||
|
--use-logs-new-schema true \
|
||||||
|
--use-trace-new-schema true
|
||||||
|
|
||||||
# Steps to build static binary of query service
|
.PHONY: go-build-community $(GO_BUILD_ARCHS_COMMUNITY)
|
||||||
.PHONY: build-query-service-static
|
go-build-community: ## Builds the go backend server for community
|
||||||
build-query-service-static:
|
go-build-community: $(GO_BUILD_ARCHS_COMMUNITY)
|
||||||
@echo "------------------"
|
$(GO_BUILD_ARCHS_COMMUNITY): go-build-community-%: $(TARGET_DIR)
|
||||||
@echo "--> Building query-service static binary"
|
@mkdir -p $(TARGET_DIR)/$(OS)-$*
|
||||||
@echo "------------------"
|
@echo ">> building binary $(TARGET_DIR)/$(OS)-$*/$(NAME)-community"
|
||||||
@if [ $(DEV_BUILD) != "" ]; then \
|
@if [ $* = "arm64" ]; then \
|
||||||
cd $(QUERY_SERVICE_DIRECTORY) && \
|
CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOARCH=$* GOOS=$(OS) go build -C $(GO_BUILD_CONTEXT_COMMUNITY) -tags timetzdata -o $(TARGET_DIR)/$(OS)-$*/$(NAME)-community -ldflags "-linkmode external -extldflags '-static' -s -w $(GO_BUILD_LDFLAGS_COMMUNITY)"; \
|
||||||
CGO_ENABLED=1 go build -tags timetzdata -a -o ./bin/query-service-${GOOS}-${GOARCH} \
|
|
||||||
-ldflags "-linkmode external -extldflags '-static' -s -w ${LD_FLAGS} ${DEV_LD_FLAGS}"; \
|
|
||||||
else \
|
else \
|
||||||
cd $(QUERY_SERVICE_DIRECTORY) && \
|
CGO_ENABLED=1 GOARCH=$* GOOS=$(OS) go build -C $(GO_BUILD_CONTEXT_COMMUNITY) -tags timetzdata -o $(TARGET_DIR)/$(OS)-$*/$(NAME)-community -ldflags "-linkmode external -extldflags '-static' -s -w $(GO_BUILD_LDFLAGS_COMMUNITY)"; \
|
||||||
CGO_ENABLED=1 go build -tags timetzdata -a -o ./bin/query-service-${GOOS}-${GOARCH} \
|
|
||||||
-ldflags "-linkmode external -extldflags '-static' -s -w ${LD_FLAGS}"; \
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
.PHONY: build-query-service-static-amd64
|
|
||||||
build-query-service-static-amd64:
|
|
||||||
make GOARCH=amd64 build-query-service-static
|
|
||||||
|
|
||||||
.PHONY: build-query-service-static-arm64
|
.PHONY: go-build-enterprise $(GO_BUILD_ARCHS_ENTERPRISE)
|
||||||
build-query-service-static-arm64:
|
go-build-enterprise: ## Builds the go backend server for enterprise
|
||||||
make CC=aarch64-linux-gnu-gcc GOARCH=arm64 build-query-service-static
|
go-build-enterprise: $(GO_BUILD_ARCHS_ENTERPRISE)
|
||||||
|
$(GO_BUILD_ARCHS_ENTERPRISE): go-build-enterprise-%: $(TARGET_DIR)
|
||||||
# Steps to build static binary of query service for all platforms
|
@mkdir -p $(TARGET_DIR)/$(OS)-$*
|
||||||
.PHONY: build-query-service-static-all
|
@echo ">> building binary $(TARGET_DIR)/$(OS)-$*/$(NAME)"
|
||||||
build-query-service-static-all: build-query-service-static-amd64 build-query-service-static-arm64
|
@if [ $* = "arm64" ]; then \
|
||||||
|
CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOARCH=$* GOOS=$(OS) go build -C $(GO_BUILD_CONTEXT_ENTERPRISE) -tags timetzdata -o $(TARGET_DIR)/$(OS)-$*/$(NAME) -ldflags "-linkmode external -extldflags '-static' -s -w $(GO_BUILD_LDFLAGS_ENTERPRISE)"; \
|
||||||
# Steps to build and push docker image of query service
|
|
||||||
.PHONY: build-query-service-amd64 build-push-query-service
|
|
||||||
# Step to build docker image of query service in amd64 (used in build pipeline)
|
|
||||||
build-query-service-amd64: build-query-service-static-amd64
|
|
||||||
@echo "------------------"
|
|
||||||
@echo "--> Building query-service docker image for amd64"
|
|
||||||
@echo "------------------"
|
|
||||||
@docker build --file $(QUERY_SERVICE_DIRECTORY)/Dockerfile \
|
|
||||||
--tag $(REPONAME)/$(QUERY_SERVICE_DOCKER_IMAGE):$(DOCKER_TAG) \
|
|
||||||
--build-arg TARGETPLATFORM="linux/amd64" .
|
|
||||||
|
|
||||||
# Step to build and push docker image of query in amd64 and arm64 (used in push pipeline)
|
|
||||||
build-push-query-service: build-query-service-static-all
|
|
||||||
@echo "------------------"
|
|
||||||
@echo "--> Building and pushing query-service docker image"
|
|
||||||
@echo "------------------"
|
|
||||||
@docker buildx build --file $(QUERY_SERVICE_DIRECTORY)/Dockerfile --progress plain \
|
|
||||||
--push --platform linux/arm64,linux/amd64 \
|
|
||||||
--tag $(REPONAME)/$(QUERY_SERVICE_DOCKER_IMAGE):$(DOCKER_TAG) .
|
|
||||||
|
|
||||||
# Step to build EE docker image of query service in amd64 (used in build pipeline)
|
|
||||||
build-ee-query-service-amd64:
|
|
||||||
@echo "------------------"
|
|
||||||
@echo "--> Building query-service docker image for amd64"
|
|
||||||
@echo "------------------"
|
|
||||||
make QUERY_SERVICE_DIRECTORY=${EE_QUERY_SERVICE_DIRECTORY} build-query-service-amd64
|
|
||||||
|
|
||||||
# Step to build and push EE docker image of query in amd64 and arm64 (used in push pipeline)
|
|
||||||
build-push-ee-query-service:
|
|
||||||
@echo "------------------"
|
|
||||||
@echo "--> Building and pushing query-service docker image"
|
|
||||||
@echo "------------------"
|
|
||||||
make QUERY_SERVICE_DIRECTORY=${EE_QUERY_SERVICE_DIRECTORY} build-push-query-service
|
|
||||||
|
|
||||||
dev-setup:
|
|
||||||
mkdir -p /var/lib/signoz
|
|
||||||
sqlite3 /var/lib/signoz/signoz.db "VACUUM";
|
|
||||||
mkdir -p pkg/query-service/config/dashboards
|
|
||||||
@echo "------------------"
|
|
||||||
@echo "--> Local Setup completed"
|
|
||||||
@echo "------------------"
|
|
||||||
|
|
||||||
run-local:
|
|
||||||
@docker-compose -f \
|
|
||||||
$(STANDALONE_DIRECTORY)/docker-compose-core.yaml -f $(STANDALONE_DIRECTORY)/docker-compose-local.yaml \
|
|
||||||
up --build -d
|
|
||||||
|
|
||||||
down-local:
|
|
||||||
@docker-compose -f \
|
|
||||||
$(STANDALONE_DIRECTORY)/docker-compose-core.yaml -f $(STANDALONE_DIRECTORY)/docker-compose-local.yaml \
|
|
||||||
down -v
|
|
||||||
|
|
||||||
pull-signoz:
|
|
||||||
@docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.yaml pull
|
|
||||||
|
|
||||||
run-signoz:
|
|
||||||
@docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.yaml up --build -d
|
|
||||||
|
|
||||||
run-testing:
|
|
||||||
@docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.testing.yaml up --build -d
|
|
||||||
|
|
||||||
down-signoz:
|
|
||||||
@docker-compose -f $(STANDALONE_DIRECTORY)/docker-compose.yaml down -v
|
|
||||||
|
|
||||||
clear-standalone-data:
|
|
||||||
@docker run --rm -v "$(PWD)/$(STANDALONE_DIRECTORY)/data:/pwd" busybox \
|
|
||||||
sh -c "cd /pwd && rm -rf alertmanager/* clickhouse*/* signoz/* zookeeper-*/*"
|
|
||||||
|
|
||||||
clear-swarm-data:
|
|
||||||
@docker run --rm -v "$(PWD)/$(SWARM_DIRECTORY)/data:/pwd" busybox \
|
|
||||||
sh -c "cd /pwd && rm -rf alertmanager/* clickhouse*/* signoz/* zookeeper-*/*"
|
|
||||||
|
|
||||||
clear-standalone-ch:
|
|
||||||
@docker run --rm -v "$(PWD)/$(STANDALONE_DIRECTORY)/data:/pwd" busybox \
|
|
||||||
sh -c "cd /pwd && rm -rf clickhouse*/* zookeeper-*/*"
|
|
||||||
|
|
||||||
clear-swarm-ch:
|
|
||||||
@docker run --rm -v "$(PWD)/$(SWARM_DIRECTORY)/data:/pwd" busybox \
|
|
||||||
sh -c "cd /pwd && rm -rf clickhouse*/* zookeeper-*/*"
|
|
||||||
|
|
||||||
check-no-ee-references:
|
|
||||||
@echo "Checking for 'ee' package references in 'pkg' directory..."
|
|
||||||
@if grep -R --include="*.go" '.*/ee/.*' pkg/; then \
|
|
||||||
echo "Error: Found references to 'ee' packages in 'pkg' directory"; \
|
|
||||||
exit 1; \
|
|
||||||
else \
|
else \
|
||||||
echo "No references to 'ee' packages found in 'pkg' directory"; \
|
CGO_ENABLED=1 GOARCH=$* GOOS=$(OS) go build -C $(GO_BUILD_CONTEXT_ENTERPRISE) -tags timetzdata -o $(TARGET_DIR)/$(OS)-$*/$(NAME) -ldflags "-linkmode external -extldflags '-static' -s -w $(GO_BUILD_LDFLAGS_ENTERPRISE)"; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
test:
|
.PHONY: go-build-enterprise-race $(GO_BUILD_ARCHS_ENTERPRISE_RACE)
|
||||||
go test ./pkg/query-service/app/metrics/...
|
go-build-enterprise-race: ## Builds the go backend server for enterprise with race
|
||||||
go test ./pkg/query-service/cache/...
|
go-build-enterprise-race: $(GO_BUILD_ARCHS_ENTERPRISE_RACE)
|
||||||
go test ./pkg/query-service/app/...
|
$(GO_BUILD_ARCHS_ENTERPRISE_RACE): go-build-enterprise-race-%: $(TARGET_DIR)
|
||||||
go test ./pkg/query-service/app/querier/...
|
@mkdir -p $(TARGET_DIR)/$(OS)-$*
|
||||||
go test ./pkg/query-service/converter/...
|
@echo ">> building binary $(TARGET_DIR)/$(OS)-$*/$(NAME)"
|
||||||
go test ./pkg/query-service/formatter/...
|
@if [ $* = "arm64" ]; then \
|
||||||
go test ./pkg/query-service/tests/integration/...
|
CC=aarch64-linux-gnu-gcc CGO_ENABLED=1 GOARCH=$* GOOS=$(OS) go build -C $(GO_BUILD_CONTEXT_ENTERPRISE) -race -tags timetzdata -o $(TARGET_DIR)/$(OS)-$*/$(NAME) -ldflags "-linkmode external -extldflags '-static' -s -w $(GO_BUILD_LDFLAGS_ENTERPRISE)"; \
|
||||||
go test ./pkg/query-service/rules/...
|
else \
|
||||||
go test ./pkg/query-service/collectorsimulator/...
|
CGO_ENABLED=1 GOARCH=$* GOOS=$(OS) go build -C $(GO_BUILD_CONTEXT_ENTERPRISE) -race -tags timetzdata -o $(TARGET_DIR)/$(OS)-$*/$(NAME) -ldflags "-linkmode external -extldflags '-static' -s -w $(GO_BUILD_LDFLAGS_ENTERPRISE)"; \
|
||||||
go test ./pkg/query-service/postprocess/...
|
fi
|
||||||
|
|
||||||
|
##############################################################
|
||||||
|
# js commands
|
||||||
|
##############################################################
|
||||||
|
.PHONY: js-build
|
||||||
|
js-build: ## Builds the js frontend
|
||||||
|
@echo ">> building js frontend"
|
||||||
|
@cd $(JS_BUILD_CONTEXT) && CI=1 yarn install && yarn build
|
||||||
|
|
||||||
|
##############################################################
|
||||||
|
# docker commands
|
||||||
|
##############################################################
|
||||||
|
.PHONY: docker-build-community $(DOCKER_BUILD_ARCHS_COMMUNITY)
|
||||||
|
docker-build-community: ## Builds the docker image for community
|
||||||
|
docker-build-community: $(DOCKER_BUILD_ARCHS_COMMUNITY)
|
||||||
|
$(DOCKER_BUILD_ARCHS_COMMUNITY): docker-build-community-%: go-build-community-% js-build
|
||||||
|
@echo ">> building docker image for $(NAME)-community"
|
||||||
|
@docker build -t "$(DOCKER_REGISTRY_COMMUNITY):$(VERSION)-$*" \
|
||||||
|
--build-arg TARGETARCH="$*" \
|
||||||
|
-f $(DOCKERFILE_COMMUNITY) $(SRC)
|
||||||
|
|
||||||
|
.PHONY: docker-buildx-community
|
||||||
|
docker-buildx-community: ## Builds the docker image for community using buildx
|
||||||
|
docker-buildx-community: go-build-community js-build
|
||||||
|
@echo ">> building docker image for $(NAME)-community"
|
||||||
|
@docker buildx build --file $(DOCKERFILE_COMMUNITY) \
|
||||||
|
--progress plain \
|
||||||
|
--platform linux/arm64,linux/amd64 \
|
||||||
|
--push \
|
||||||
|
--tag $(DOCKER_REGISTRY_COMMUNITY):$(VERSION) $(SRC)
|
||||||
|
|
||||||
|
.PHONY: docker-build-enterprise $(DOCKER_BUILD_ARCHS_ENTERPRISE)
|
||||||
|
docker-build-enterprise: ## Builds the docker image for enterprise
|
||||||
|
docker-build-enterprise: $(DOCKER_BUILD_ARCHS_ENTERPRISE)
|
||||||
|
$(DOCKER_BUILD_ARCHS_ENTERPRISE): docker-build-enterprise-%: go-build-enterprise-% js-build
|
||||||
|
@echo ">> building docker image for $(NAME)"
|
||||||
|
@docker build -t "$(DOCKER_REGISTRY_ENTERPRISE):$(VERSION)-$*" \
|
||||||
|
--build-arg TARGETARCH="$*" \
|
||||||
|
-f $(DOCKERFILE_ENTERPRISE) $(SRC)
|
||||||
|
|
||||||
|
.PHONY: docker-buildx-enterprise
|
||||||
|
docker-buildx-enterprise: ## Builds the docker image for enterprise using buildx
|
||||||
|
docker-buildx-enterprise: go-build-enterprise js-build
|
||||||
|
@echo ">> building docker image for $(NAME)"
|
||||||
|
@docker buildx build --file $(DOCKERFILE_ENTERPRISE) \
|
||||||
|
--progress plain \
|
||||||
|
--platform linux/arm64,linux/amd64 \
|
||||||
|
--push \
|
||||||
|
--tag $(DOCKER_REGISTRY_ENTERPRISE):$(VERSION) $(SRC)
|
||||||
|
|
||||||
|
##############################################################
|
||||||
|
# python commands
|
||||||
|
##############################################################
|
||||||
|
.PHONY: py-fmt
|
||||||
|
py-fmt: ## Run black for integration tests
|
||||||
|
@cd tests/integration && poetry run black .
|
||||||
|
|
||||||
|
.PHONY: py-lint
|
||||||
|
py-lint: ## Run lint for integration tests
|
||||||
|
@cd tests/integration && poetry run isort .
|
||||||
|
@cd tests/integration && poetry run autoflake .
|
||||||
|
@cd tests/integration && poetry run pylint .
|
||||||
|
|
||||||
|
.PHONY: py-test
|
||||||
|
py-test: ## Runs integration tests
|
||||||
|
@cd tests/integration && poetry run pytest --basetemp=./tmp/ -vv --capture=no src/
|
||||||
@@ -13,9 +13,9 @@
|
|||||||
|
|
||||||
<h3 align="center">
|
<h3 align="center">
|
||||||
<a href="https://signoz.io/docs"><b>Dokumentation</b></a> •
|
<a href="https://signoz.io/docs"><b>Dokumentation</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.md"><b>Readme auf Englisch </b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.md"><b>Readme auf Englisch </b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.zh-cn.md"><b>ReadMe auf Chinesisch</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.zh-cn.md"><b>ReadMe auf Chinesisch</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.pt-br.md"><b>ReadMe auf Portugiesisch</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.pt-br.md"><b>ReadMe auf Portugiesisch</b></a> •
|
||||||
<a href="https://signoz.io/slack"><b>Slack Community</b></a> •
|
<a href="https://signoz.io/slack"><b>Slack Community</b></a> •
|
||||||
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
||||||
</h3>
|
</h3>
|
||||||
|
|||||||
212
README.md
212
README.md
@@ -1,8 +1,11 @@
|
|||||||
<p align="center">
|
<h1 align="center" style="border-bottom: none">
|
||||||
<img src="https://res.cloudinary.com/dcv3epinx/image/upload/v1618904450/signoz-images/LogoGithub_sigfbu.svg" alt="SigNoz-logo" width="240" />
|
<a href="https://signoz.io" target="_blank">
|
||||||
|
<img alt="SigNoz" src="https://github.com/user-attachments/assets/ef9a33f7-12d7-4c94-8908-0a02b22f0c18" width="100" height="100">
|
||||||
|
</a>
|
||||||
|
<br>SigNoz
|
||||||
|
</h1>
|
||||||
|
|
||||||
<p align="center">Monitor your applications and troubleshoot problems in your deployed applications, an open-source alternative to DataDog, New Relic, etc.</p>
|
<p align="center">All your logs, metrics, and traces in one place. Monitor your application, spot issues before they occur and troubleshoot downtime quickly with rich context. SigNoz is a cost-effective open-source alternative to Datadog and New Relic. Visit <a href="https://signoz.io" target="_blank">signoz.io</a> for the full documentation, tutorials, and guide.</p>
|
||||||
</p>
|
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img alt="Downloads" src="https://img.shields.io/docker/pulls/signoz/query-service?label=Docker Downloads"> </a>
|
<img alt="Downloads" src="https://img.shields.io/docker/pulls/signoz/query-service?label=Docker Downloads"> </a>
|
||||||
@@ -14,62 +17,122 @@
|
|||||||
|
|
||||||
<h3 align="center">
|
<h3 align="center">
|
||||||
<a href="https://signoz.io/docs"><b>Documentation</b></a> •
|
<a href="https://signoz.io/docs"><b>Documentation</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.zh-cn.md"><b>ReadMe in Chinese</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.zh-cn.md"><b>ReadMe in Chinese</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.de-de.md"><b>ReadMe in German</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.de-de.md"><b>ReadMe in German</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.pt-br.md"><b>ReadMe in Portuguese</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.pt-br.md"><b>ReadMe in Portuguese</b></a> •
|
||||||
<a href="https://signoz.io/slack"><b>Slack Community</b></a> •
|
<a href="https://signoz.io/slack"><b>Slack Community</b></a> •
|
||||||
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
##
|
## Features
|
||||||
|
|
||||||
SigNoz helps developers monitor applications and troubleshoot problems in their deployed applications. With SigNoz, you can:
|
|
||||||
|
|
||||||
👉 Visualise Metrics, Traces and Logs in a single pane of glass
|
|
||||||
|
|
||||||
👉 You can see metrics like p99 latency, error rates for your services, external API calls and individual end points.
|
|
||||||
|
|
||||||
👉 You can find the root cause of the problem by going to the exact traces which are causing the problem and see detailed flamegraphs of individual request traces.
|
|
||||||
|
|
||||||
👉 Run aggregates on trace data to get business relevant metrics
|
|
||||||
|
|
||||||
👉 Filter and query logs, build dashboards and alerts based on attributes in logs
|
|
||||||
|
|
||||||
👉 Record exceptions automatically in Python, Java, Ruby, and Javascript
|
|
||||||
|
|
||||||
👉 Easy to set alerts with DIY query builder
|
|
||||||
|
|
||||||
|
|
||||||
### Application Metrics
|
### Application Performance Monitoring
|
||||||
|
|
||||||

|
Use SigNoz APM to monitor your applications and services. It comes with out-of-box charts for key application metrics like p99 latency, error rate, Apdex and operations per second. You can also monitor the database and external calls made from your application. Read [more](https://signoz.io/application-performance-monitoring/).
|
||||||
|
|
||||||
|
You can [instrument](https://signoz.io/docs/instrumentation/) your application with OpenTelemetry to get started.
|
||||||
|
|
||||||
### Distributed Tracing
|

|
||||||
<img width="2068" alt="distributed_tracing_2 2" src="https://user-images.githubusercontent.com/83692067/226536447-bae58321-6a22-4ed3-af80-e3e964cb3489.png">
|
|
||||||
|
|
||||||
<img width="2068" alt="distributed_tracing_1" src="https://user-images.githubusercontent.com/83692067/226536462-939745b6-4f9d-45a6-8016-814837e7f7b4.png">
|
|
||||||
|
|
||||||
### Logs Management
|
### Logs Management
|
||||||
|
|
||||||
<img width="2068" alt="logs_management" src="https://user-images.githubusercontent.com/83692067/226536482-b8a5c4af-b69c-43d5-969c-338bd5eaf1a5.png">
|
SigNoz can be used as a centralized log management solution. We use ClickHouse (used by likes of Uber & Cloudflare) as a datastore, ⎯ an extremely fast and highly optimized storage for logs data. Instantly search through all your logs using quick filters and a powerful query builder.
|
||||||
|
|
||||||
### Infrastructure Monitoring
|
You can also create charts on your logs and monitor them with customized dashboards. Read [more](https://signoz.io/log-management/).
|
||||||
|
|
||||||
<img width="2068" alt="infrastructure_monitoring" src="https://user-images.githubusercontent.com/83692067/226536496-f38c4dbf-e03c-4158-8be0-32d4a61158c7.png">
|

|
||||||
|
|
||||||
### Exceptions Monitoring
|
|
||||||
|
|
||||||

|
### Distributed Tracing
|
||||||
|
|
||||||
|
Distributed Tracing is essential to troubleshoot issues in microservices applications. Powered by OpenTelemetry, distributed tracing in SigNoz can help you track user requests across services to help you identify performance bottlenecks.
|
||||||
|
|
||||||
|
See user requests in a detailed breakdown with the help of Flamegraphs and Gantt Charts. Click on any span to see the entire trace represented beautifully, which will help you make sense of where issues actually occurred in the flow of requests.
|
||||||
|
|
||||||
|
Read [more](https://signoz.io/distributed-tracing/).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Metrics and Dashboards
|
||||||
|
|
||||||
|
Ingest metrics from your infrastructure or applications and create customized dashboards to monitor them. Create visualization that suits your needs with a variety of panel types like pie chart, time-series, bar chart, etc.
|
||||||
|
|
||||||
|
Create queries on your metrics data quickly with an easy-to-use metrics query builder. Add multiple queries and combine those queries with formulae to create really complex queries quickly.
|
||||||
|
|
||||||
|
Read [more](https://signoz.io/metrics-and-dashboards/).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
### Alerts
|
### Alerts
|
||||||
|
|
||||||
<img width="2068" alt="alerts_management" src="https://user-images.githubusercontent.com/83692067/226536548-2c81e2e8-c12d-47e8-bad7-c6be79055def.png">
|
Use alerts in SigNoz to get notified when anything unusual happens in your application. You can set alerts on any type of telemetry signal (logs, metrics, traces), create thresholds and set up a notification channel to get notified. Advanced features like alert history and anomaly detection can help you create smarter alerts.
|
||||||
|
|
||||||
|
Alerts in SigNoz help you identify issues proactively so that you can address them before they reach your customers.
|
||||||
|
|
||||||
|
Read [more](https://signoz.io/alerts-management/).
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
### Exceptions Monitoring
|
||||||
|
|
||||||
|
Monitor exceptions automatically in Python, Java, Ruby, and Javascript. For other languages, just drop in a few lines of code and start monitoring exceptions.
|
||||||
|
|
||||||
|
See the detailed stack trace for all exceptions caught in your application. You can also log in custom attributes to add more context to your exceptions. For example, you can add attributes to identify users for which exceptions occurred.
|
||||||
|
|
||||||
|
Read [more](https://signoz.io/exceptions-monitoring/).
|
||||||
|
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
<br /><br />
|
<br /><br />
|
||||||
|
|
||||||
|
## Why SigNoz?
|
||||||
|
|
||||||
|
SigNoz is a single tool for all your monitoring and observability needs. Here are a few reasons why you should choose SigNoz:
|
||||||
|
|
||||||
|
- Single tool for observability(logs, metrics, and traces)
|
||||||
|
|
||||||
|
- Built on top of [OpenTelemetry](https://opentelemetry.io/), the open-source standard which frees you from any type of vendor lock-in
|
||||||
|
|
||||||
|
- Correlated logs, metrics and traces for much richer context while debugging
|
||||||
|
|
||||||
|
- Uses ClickHouse (used by likes of Uber & Cloudflare) as datastore - an extremely fast and highly optimized storage for observability data
|
||||||
|
|
||||||
|
- DIY Query builder, PromQL, and ClickHouse queries to fulfill all your use-cases around querying observability data
|
||||||
|
|
||||||
|
- Open-Source - you can use open-source, our [cloud service](https://signoz.io/teams/) or a mix of both based on your use case
|
||||||
|
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
### Create a SigNoz Cloud Account
|
||||||
|
|
||||||
|
SigNoz cloud is the easiest way to get started with SigNoz. Our cloud service is for those users who want to spend more time in getting insights for their application performance without worrying about maintenance.
|
||||||
|
|
||||||
|
[Get started for free](https://signoz.io/teams/)
|
||||||
|
|
||||||
|
### Deploy using Docker(self-hosted)
|
||||||
|
|
||||||
|
Please follow the steps listed [here](https://signoz.io/docs/install/docker/) to install using docker
|
||||||
|
|
||||||
|
The [troubleshooting instructions](https://signoz.io/docs/install/troubleshooting/) may be helpful if you face any issues.
|
||||||
|
|
||||||
|
<p>  </p>
|
||||||
|
|
||||||
|
|
||||||
|
### Deploy in Kubernetes using Helm(self-hosted)
|
||||||
|
|
||||||
|
Please follow the steps listed [here](https://signoz.io/docs/deployment/helm_chart) to install using helm charts
|
||||||
|
|
||||||
|
<br /><br />
|
||||||
|
|
||||||
|
We also offer managed services in your infra. Check our [pricing plans](https://signoz.io/pricing/) for all details.
|
||||||
|
|
||||||
|
|
||||||
## Join our Slack community
|
## Join our Slack community
|
||||||
|
|
||||||
@@ -78,64 +141,22 @@ Come say Hi to us on [Slack](https://signoz.io/slack) 👋
|
|||||||
<br /><br />
|
<br /><br />
|
||||||
|
|
||||||
|
|
||||||
## Features:
|
|
||||||
|
|
||||||
- Unified UI for metrics, traces and logs. No need to switch from Prometheus to Jaeger to debug issues, or use a logs tool like Elastic separate from your metrics and traces stack.
|
|
||||||
- Application overview metrics like RPS, 50th/90th/99th Percentile latencies, and Error Rate
|
|
||||||
- Slowest endpoints in your application
|
|
||||||
- See exact request trace to figure out issues in downstream services, slow DB queries, call to 3rd party services like payment gateways, etc
|
|
||||||
- Filter traces by service name, operation, latency, error, tags/annotations.
|
|
||||||
- Run aggregates on trace data (events/spans) to get business relevant metrics. e.g. You can get error rate and 99th percentile latency of `customer_type: gold` or `deployment_version: v2` or `external_call: paypal`
|
|
||||||
- Native support for OpenTelemetry Logs, advanced log query builder, and automatic log collection from k8s cluster
|
|
||||||
- Lightning quick log analytics ([Logs Perf. Benchmark](https://signoz.io/blog/logs-performance-benchmark/))
|
|
||||||
- End-to-End visibility into infrastructure performance, ingest metrics from all kinds of host environments
|
|
||||||
- Easy to set alerts with DIY query builder
|
|
||||||
|
|
||||||
<br /><br />
|
|
||||||
|
|
||||||
|
|
||||||
## Why SigNoz?
|
|
||||||
|
|
||||||
Being developers, we found it annoying to rely on closed source SaaS vendors for every small feature we wanted. Closed source vendors often surprise you with huge month end bills without any transparency.
|
|
||||||
|
|
||||||
We wanted to make a self-hosted & open source version of tools like DataDog, NewRelic for companies that have privacy and security concerns about having customer data going to third party services.
|
|
||||||
|
|
||||||
Being open source also gives you complete control of your configuration, sampling, uptimes. You can also build modules over SigNoz to extend business specific capabilities
|
|
||||||
|
|
||||||
### Languages supported:
|
### Languages supported:
|
||||||
|
|
||||||
We support [OpenTelemetry](https://opentelemetry.io) as the library which you can use to instrument your applications. So any framework and language supported by OpenTelemetry is also supported by SigNoz. Some of the main supported languages are:
|
SigNoz supports all major programming languages for monitoring. Any framework and language supported by OpenTelemetry is supported by SigNoz. Find instructions for instrumenting different languages below:
|
||||||
|
|
||||||
- Java
|
- [Java](https://signoz.io/docs/instrumentation/java/)
|
||||||
- Python
|
- [Python](https://signoz.io/docs/instrumentation/python/)
|
||||||
- Node.js
|
- [Node.js or Javascript](https://signoz.io/docs/instrumentation/javascript/)
|
||||||
- Go
|
- [Go](https://signoz.io/docs/instrumentation/golang/)
|
||||||
- PHP
|
- [PHP](https://signoz.io/docs/instrumentation/php/)
|
||||||
- .NET
|
- [.NET](https://signoz.io/docs/instrumentation/dotnet/)
|
||||||
- Ruby
|
- [Ruby](https://signoz.io/docs/instrumentation/ruby-on-rails/)
|
||||||
- Elixir
|
- [Elixir](https://signoz.io/docs/instrumentation/elixir/)
|
||||||
- Rust
|
- [Rust](https://signoz.io/docs/instrumentation/rust/)
|
||||||
|
- [Swift](https://signoz.io/docs/instrumentation/swift/)
|
||||||
|
|
||||||
|
You can find our entire documentation [here](https://signoz.io/docs/introduction/).
|
||||||
You can find the complete list of languages here - https://opentelemetry.io/docs/
|
|
||||||
|
|
||||||
<br /><br />
|
|
||||||
|
|
||||||
|
|
||||||
## Getting Started
|
|
||||||
|
|
||||||
### Deploy using Docker
|
|
||||||
|
|
||||||
Please follow the steps listed [here](https://signoz.io/docs/install/docker/) to install using docker
|
|
||||||
|
|
||||||
The [troubleshooting instructions](https://signoz.io/docs/install/troubleshooting/) may be helpful if you face any issues.
|
|
||||||
|
|
||||||
<p>  </p>
|
|
||||||
|
|
||||||
|
|
||||||
### Deploy in Kubernetes using Helm
|
|
||||||
|
|
||||||
Please follow the steps listed [here](https://signoz.io/docs/deployment/helm_chart) to install using helm charts
|
|
||||||
|
|
||||||
<br /><br />
|
<br /><br />
|
||||||
|
|
||||||
@@ -144,9 +165,11 @@ Please follow the steps listed [here](https://signoz.io/docs/deployment/helm_cha
|
|||||||
|
|
||||||
### SigNoz vs Prometheus
|
### SigNoz vs Prometheus
|
||||||
|
|
||||||
Prometheus is good if you want to do just metrics. But if you want to have a seamless experience between metrics and traces, then current experience of stitching together Prometheus & Jaeger is not great.
|
Prometheus is good if you want to do just metrics. But if you want to have a seamless experience between metrics, logs and traces, then current experience of stitching together Prometheus & other tools is not great.
|
||||||
|
|
||||||
Our goal is to provide an integrated UI between metrics & traces - similar to what SaaS vendors like Datadog provides - and give advanced filtering and aggregation over traces, something which Jaeger currently lack.
|
SigNoz is a one-stop solution for metrics and other telemetry signals. And because you will use the same standard(OpenTelemetry) to collect all telemetry signals, you can also correlate these signals to troubleshoot quickly.
|
||||||
|
|
||||||
|
For example, if you see that there are issues with infrastructure metrics of your k8s cluster at a timestamp, you can jump to other signals like logs and traces to understand the issue quickly.
|
||||||
|
|
||||||
<p>  </p>
|
<p>  </p>
|
||||||
|
|
||||||
@@ -158,6 +181,7 @@ Moreover, SigNoz has few more advanced features wrt Jaeger:
|
|||||||
|
|
||||||
- Jaegar UI doesn’t show any metrics on traces or on filtered traces
|
- Jaegar UI doesn’t show any metrics on traces or on filtered traces
|
||||||
- Jaeger can’t get aggregates on filtered traces. For example, p99 latency of requests which have tag - customer_type='premium'. This can be done easily on SigNoz
|
- Jaeger can’t get aggregates on filtered traces. For example, p99 latency of requests which have tag - customer_type='premium'. This can be done easily on SigNoz
|
||||||
|
- You can also go from traces to logs easily in SigNoz
|
||||||
|
|
||||||
<p>  </p>
|
<p>  </p>
|
||||||
|
|
||||||
@@ -195,12 +219,18 @@ Not sure how to get started? Just ping us on `#contributing` in our [slack commu
|
|||||||
- [Nityananda Gohain](https://github.com/nityanandagohain)
|
- [Nityananda Gohain](https://github.com/nityanandagohain)
|
||||||
- [Srikanth Chekuri](https://github.com/srikanthccv)
|
- [Srikanth Chekuri](https://github.com/srikanthccv)
|
||||||
- [Vishal Sharma](https://github.com/makeavish)
|
- [Vishal Sharma](https://github.com/makeavish)
|
||||||
|
- [Shivanshu Raj Shrivastava](https://github.com/shivanshuraj1333)
|
||||||
|
- [Ekansh Gupta](https://github.com/eKuG)
|
||||||
|
- [Aniket Agarwal](https://github.com/aniketio-ctrl)
|
||||||
|
|
||||||
#### Frontend
|
#### Frontend
|
||||||
|
|
||||||
- [Yunus M](https://github.com/YounixM)
|
- [Yunus M](https://github.com/YounixM)
|
||||||
- [Vikrant Gupta](https://github.com/vikrantgupta25)
|
- [Vikrant Gupta](https://github.com/vikrantgupta25)
|
||||||
- [Sagar Rajput](https://github.com/SagarRajput-7)
|
- [Sagar Rajput](https://github.com/SagarRajput-7)
|
||||||
|
- [Shaheer Kochai](https://github.com/ahmadshaheer)
|
||||||
|
- [Amlan Kumar Nandy](https://github.com/amlannandy)
|
||||||
|
- [Sahil Khan](https://github.com/sawhil)
|
||||||
|
|
||||||
#### DevOps
|
#### DevOps
|
||||||
|
|
||||||
|
|||||||
@@ -12,9 +12,9 @@
|
|||||||
|
|
||||||
<h3 align="center">
|
<h3 align="center">
|
||||||
<a href="https://signoz.io/docs"><b>文档</b></a> •
|
<a href="https://signoz.io/docs"><b>文档</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.zh-cn.md"><b>中文ReadMe</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.zh-cn.md"><b>中文ReadMe</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.de-de.md"><b>德文ReadMe</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.de-de.md"><b>德文ReadMe</b></a> •
|
||||||
<a href="https://github.com/SigNoz/signoz/blob/develop/README.pt-br.md"><b>葡萄牙语ReadMe</b></a> •
|
<a href="https://github.com/SigNoz/signoz/blob/main/README.pt-br.md"><b>葡萄牙语ReadMe</b></a> •
|
||||||
<a href="https://signoz.io/slack"><b>Slack 社区</b></a> •
|
<a href="https://signoz.io/slack"><b>Slack 社区</b></a> •
|
||||||
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
<a href="https://twitter.com/SigNozHq"><b>Twitter</b></a>
|
||||||
</h3>
|
</h3>
|
||||||
|
|||||||
166
conf/example.yaml
Normal file
166
conf/example.yaml
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
##################### SigNoz Configuration Example #####################
|
||||||
|
#
|
||||||
|
# Do not modify this file
|
||||||
|
#
|
||||||
|
|
||||||
|
##################### Version #####################
|
||||||
|
version:
|
||||||
|
banner:
|
||||||
|
# Whether to enable the version banner on startup.
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
##################### Instrumentation #####################
|
||||||
|
instrumentation:
|
||||||
|
logs:
|
||||||
|
# The log level to use.
|
||||||
|
level: info
|
||||||
|
traces:
|
||||||
|
# Whether to enable tracing.
|
||||||
|
enabled: false
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
exporter:
|
||||||
|
otlp:
|
||||||
|
endpoint: localhost:4317
|
||||||
|
metrics:
|
||||||
|
# Whether to enable metrics.
|
||||||
|
enabled: true
|
||||||
|
readers:
|
||||||
|
pull:
|
||||||
|
exporter:
|
||||||
|
prometheus:
|
||||||
|
host: "0.0.0.0"
|
||||||
|
port: 9090
|
||||||
|
|
||||||
|
##################### Web #####################
|
||||||
|
web:
|
||||||
|
# Whether to enable the web frontend
|
||||||
|
enabled: true
|
||||||
|
# The prefix to serve web on
|
||||||
|
prefix: /
|
||||||
|
# The directory containing the static build files.
|
||||||
|
directory: /etc/signoz/web
|
||||||
|
|
||||||
|
##################### Cache #####################
|
||||||
|
cache:
|
||||||
|
# specifies the caching provider to use.
|
||||||
|
provider: memory
|
||||||
|
# memory: Uses in-memory caching.
|
||||||
|
memory:
|
||||||
|
# Time-to-live for cache entries in memory. Specify the duration in ns
|
||||||
|
ttl: 60000000000
|
||||||
|
# The interval at which the cache will be cleaned up
|
||||||
|
cleanupInterval: 1m
|
||||||
|
# redis: Uses Redis as the caching backend.
|
||||||
|
redis:
|
||||||
|
# The hostname or IP address of the Redis server.
|
||||||
|
host: localhost
|
||||||
|
# The port on which the Redis server is running. Default is usually 6379.
|
||||||
|
port: 6379
|
||||||
|
# The password for authenticating with the Redis server, if required.
|
||||||
|
password:
|
||||||
|
# The Redis database number to use
|
||||||
|
db: 0
|
||||||
|
|
||||||
|
##################### SQLStore #####################
|
||||||
|
sqlstore:
|
||||||
|
# specifies the SQLStore provider to use.
|
||||||
|
provider: sqlite
|
||||||
|
# The maximum number of open connections to the database.
|
||||||
|
max_open_conns: 100
|
||||||
|
sqlite:
|
||||||
|
# The path to the SQLite database file.
|
||||||
|
path: /var/lib/signoz/signoz.db
|
||||||
|
|
||||||
|
##################### APIServer #####################
|
||||||
|
apiserver:
|
||||||
|
timeout:
|
||||||
|
# Default request timeout.
|
||||||
|
default: 60s
|
||||||
|
# Maximum request timeout.
|
||||||
|
max: 600s
|
||||||
|
# List of routes to exclude from request timeout.
|
||||||
|
excluded_routes:
|
||||||
|
- /api/v1/logs/tail
|
||||||
|
- /api/v3/logs/livetail
|
||||||
|
logging:
|
||||||
|
# List of routes to exclude from request responselogging.
|
||||||
|
excluded_routes:
|
||||||
|
- /api/v1/health
|
||||||
|
- /api/v1/version
|
||||||
|
- /
|
||||||
|
|
||||||
|
##################### TelemetryStore #####################
|
||||||
|
telemetrystore:
|
||||||
|
# Maximum number of idle connections in the connection pool.
|
||||||
|
max_idle_conns: 50
|
||||||
|
# Maximum number of open connections to the database.
|
||||||
|
max_open_conns: 100
|
||||||
|
# Maximum time to wait for a connection to be established.
|
||||||
|
dial_timeout: 5s
|
||||||
|
# Specifies the telemetrystore provider to use.
|
||||||
|
provider: clickhouse
|
||||||
|
clickhouse:
|
||||||
|
# The DSN to use for clickhouse.
|
||||||
|
dsn: tcp://localhost:9000
|
||||||
|
# The query settings for clickhouse.
|
||||||
|
settings:
|
||||||
|
max_execution_time: 0
|
||||||
|
max_execution_time_leaf: 0
|
||||||
|
timeout_before_checking_execution_speed: 0
|
||||||
|
max_bytes_to_read: 0
|
||||||
|
max_result_rows_for_ch_query: 0
|
||||||
|
|
||||||
|
##################### Prometheus #####################
|
||||||
|
prometheus:
|
||||||
|
active_query_tracker:
|
||||||
|
# Whether to enable the active query tracker.
|
||||||
|
enabled: true
|
||||||
|
# The path to use for the active query tracker.
|
||||||
|
path: ""
|
||||||
|
# The maximum number of concurrent queries.
|
||||||
|
max_concurrent: 20
|
||||||
|
|
||||||
|
##################### Alertmanager #####################
|
||||||
|
alertmanager:
|
||||||
|
# Specifies the alertmanager provider to use.
|
||||||
|
provider: legacy
|
||||||
|
legacy:
|
||||||
|
# The API URL (with prefix) of the legacy Alertmanager instance.
|
||||||
|
api_url: http://localhost:9093/api
|
||||||
|
signoz:
|
||||||
|
# The poll interval for periodically syncing the alertmanager with the config in the store.
|
||||||
|
poll_interval: 1m
|
||||||
|
# The URL under which Alertmanager is externally reachable (for example, if Alertmanager is served via a reverse proxy). Used for generating relative and absolute links back to Alertmanager itself.
|
||||||
|
external_url: http://localhost:8080
|
||||||
|
# The global configuration for the alertmanager. All the exahustive fields can be found in the upstream: https://github.com/prometheus/alertmanager/blob/efa05feffd644ba4accb526e98a8c6545d26a783/config/config.go#L833
|
||||||
|
global:
|
||||||
|
# ResolveTimeout is the time after which an alert is declared resolved if it has not been updated.
|
||||||
|
resolve_timeout: 5m
|
||||||
|
route:
|
||||||
|
# GroupByStr is the list of labels to group alerts by.
|
||||||
|
group_by:
|
||||||
|
- alertname
|
||||||
|
# GroupInterval is the interval at which alerts are grouped.
|
||||||
|
group_interval: 1m
|
||||||
|
# GroupWait is the time to wait before sending alerts to receivers.
|
||||||
|
group_wait: 1m
|
||||||
|
# RepeatInterval is the interval at which alerts are repeated.
|
||||||
|
repeat_interval: 1h
|
||||||
|
alerts:
|
||||||
|
# Interval between garbage collection of alerts.
|
||||||
|
gc_interval: 30m
|
||||||
|
silences:
|
||||||
|
# Maximum number of silences, including expired silences. If negative or zero, no limit is set.
|
||||||
|
max: 0
|
||||||
|
# Maximum size of the silences in bytes. If negative or zero, no limit is set.
|
||||||
|
max_size_bytes: 0
|
||||||
|
# Interval between garbage collection and snapshotting of the silences. The snapshot will be stored in the state store.
|
||||||
|
maintenance_interval: 15m
|
||||||
|
# Retention of the silences.
|
||||||
|
retention: 120h
|
||||||
|
nflog:
|
||||||
|
# Interval between garbage collection and snapshotting of the notification logs. The snapshot will be stored in the state store.
|
||||||
|
maintenance_interval: 15m
|
||||||
|
# Retention of the notification logs.
|
||||||
|
retention: 120h
|
||||||
@@ -18,65 +18,64 @@ Now run the following command to install:
|
|||||||
|
|
||||||
### Using Docker Compose
|
### Using Docker Compose
|
||||||
|
|
||||||
If you don't have docker-compose set up, please follow [this guide](https://docs.docker.com/compose/install/)
|
If you don't have docker compose set up, please follow [this guide](https://docs.docker.com/compose/install/)
|
||||||
to set up docker compose before proceeding with the next steps.
|
to set up docker compose before proceeding with the next steps.
|
||||||
|
|
||||||
For x86 chip (amd):
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
docker-compose -f docker/clickhouse-setup/docker-compose.yaml up -d
|
cd deploy/docker
|
||||||
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Open http://localhost:3301 in your favourite browser. In couple of minutes, you should see
|
Open http://localhost:8080 in your favourite browser.
|
||||||
the data generated from hotrod in SigNoz UI.
|
|
||||||
|
|
||||||
## Kubernetes
|
To start collecting logs and metrics from your infrastructure, run the following command:
|
||||||
|
|
||||||
### Using Helm
|
|
||||||
|
|
||||||
#### Bring up SigNoz cluster
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
helm repo add signoz https://charts.signoz.io
|
cd generator/infra
|
||||||
|
docker compose up -d
|
||||||
kubectl create ns platform
|
|
||||||
|
|
||||||
helm -n platform install my-release signoz/signoz
|
|
||||||
```
|
```
|
||||||
|
|
||||||
To access the UI, you can `port-forward` the frontend service:
|
To start generating sample traces, run the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl -n platform port-forward svc/my-release-frontend 3301:3301
|
cd generator/hotrod
|
||||||
|
docker compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Open http://localhost:3301 in your favourite browser. Few minutes after you generate load
|
In a couple of minutes, you should see the data generated from hotrod in SigNoz UI.
|
||||||
from the HotROD application, you should see the data generated from hotrod in SigNoz UI.
|
|
||||||
|
|
||||||
#### Test HotROD application with SigNoz
|
For more details, please refer to the [SigNoz documentation](https://signoz.io/docs/install/docker/).
|
||||||
|
|
||||||
|
## Docker Swarm
|
||||||
|
|
||||||
|
To install SigNoz using Docker Swarm, run the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl create ns sample-application
|
cd deploy/docker-swarm
|
||||||
|
docker stack deploy -c docker-compose.yaml signoz
|
||||||
kubectl -n sample-application apply -f https://raw.githubusercontent.com/SigNoz/signoz/develop/sample-apps/hotrod/hotrod.yaml
|
|
||||||
```
|
```
|
||||||
|
|
||||||
To generate load:
|
Open http://localhost:8080 in your favourite browser.
|
||||||
|
|
||||||
|
To start collecting logs and metrics from your infrastructure, run the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl -n sample-application run strzal --image=djbingham/curl \
|
cd generator/infra
|
||||||
--restart='OnFailure' -i --tty --rm --command -- curl -X POST -F \
|
docker stack deploy -c docker-compose.yaml infra
|
||||||
'user_count=6' -F 'spawn_rate=2' http://locust-master:8089/swarm
|
|
||||||
```
|
```
|
||||||
|
|
||||||
To stop load:
|
To start generating sample traces, run the following command:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
kubectl -n sample-application run strzal --image=djbingham/curl \
|
cd generator/hotrod
|
||||||
--restart='OnFailure' -i --tty --rm --command -- curl \
|
docker stack deploy -c docker-compose.yaml hotrod
|
||||||
http://locust-master:8089/stop
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
In a couple of minutes, you should see the data generated from hotrod in SigNoz UI.
|
||||||
|
|
||||||
|
For more details, please refer to the [SigNoz documentation](https://signoz.io/docs/install/docker-swarm/).
|
||||||
|
|
||||||
## Uninstall/Troubleshoot?
|
## Uninstall/Troubleshoot?
|
||||||
|
|
||||||
Go to our official documentation site [signoz.io/docs](https://signoz.io/docs) for more.
|
Go to our official documentation site [signoz.io/docs](https://signoz.io/docs) for more.
|
||||||
|
|
||||||
|
|||||||
@@ -10,14 +10,14 @@
|
|||||||
<host>zookeeper-1</host>
|
<host>zookeeper-1</host>
|
||||||
<port>2181</port>
|
<port>2181</port>
|
||||||
</node>
|
</node>
|
||||||
<!-- <node index="2">
|
<node index="2">
|
||||||
<host>zookeeper-2</host>
|
<host>zookeeper-2</host>
|
||||||
<port>2181</port>
|
<port>2181</port>
|
||||||
</node>
|
</node>
|
||||||
<node index="3">
|
<node index="3">
|
||||||
<host>zookeeper-3</host>
|
<host>zookeeper-3</host>
|
||||||
<port>2181</port>
|
<port>2181</port>
|
||||||
</node> -->
|
</node>
|
||||||
</zookeeper>
|
</zookeeper>
|
||||||
|
|
||||||
<!-- Configuration of clusters that could be used in Distributed tables.
|
<!-- Configuration of clusters that could be used in Distributed tables.
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
<!-- <priority>1</priority> -->
|
<!-- <priority>1</priority> -->
|
||||||
</replica>
|
</replica>
|
||||||
</shard>
|
</shard>
|
||||||
<!-- <shard>
|
<shard>
|
||||||
<replica>
|
<replica>
|
||||||
<host>clickhouse-2</host>
|
<host>clickhouse-2</host>
|
||||||
<port>9000</port>
|
<port>9000</port>
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
<host>clickhouse-3</host>
|
<host>clickhouse-3</host>
|
||||||
<port>9000</port>
|
<port>9000</port>
|
||||||
</replica>
|
</replica>
|
||||||
</shard> -->
|
</shard>
|
||||||
</cluster>
|
</cluster>
|
||||||
</remote_servers>
|
</remote_servers>
|
||||||
</clickhouse>
|
</clickhouse>
|
||||||
@@ -716,7 +716,7 @@
|
|||||||
asynchronous_metrics - send data from table system.asynchronous_metrics
|
asynchronous_metrics - send data from table system.asynchronous_metrics
|
||||||
status_info - send data from different component from CH, ex: Dictionaries status
|
status_info - send data from different component from CH, ex: Dictionaries status
|
||||||
-->
|
-->
|
||||||
<!--
|
|
||||||
<prometheus>
|
<prometheus>
|
||||||
<endpoint>/metrics</endpoint>
|
<endpoint>/metrics</endpoint>
|
||||||
<port>9363</port>
|
<port>9363</port>
|
||||||
@@ -726,7 +726,6 @@
|
|||||||
<asynchronous_metrics>true</asynchronous_metrics>
|
<asynchronous_metrics>true</asynchronous_metrics>
|
||||||
<status_info>true</status_info>
|
<status_info>true</status_info>
|
||||||
</prometheus>
|
</prometheus>
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- Query log. Used only for queries with setting log_queries = 1. -->
|
<!-- Query log. Used only for queries with setting log_queries = 1. -->
|
||||||
<query_log>
|
<query_log>
|
||||||
0
deploy/common/dashboards/.gitkeep
Normal file
0
deploy/common/dashboards/.gitkeep
Normal file
1
deploy/common/signoz/otel-collector-opamp-config.yaml
Normal file
1
deploy/common/signoz/otel-collector-opamp-config.yaml
Normal file
@@ -0,0 +1 @@
|
|||||||
|
server_endpoint: ws://signoz:4320/v1/opamp
|
||||||
@@ -12,10 +12,10 @@ alerting:
|
|||||||
- alertmanager:9093
|
- alertmanager:9093
|
||||||
|
|
||||||
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
|
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
|
||||||
rule_files:
|
rule_files: []
|
||||||
# - "first_rules.yml"
|
# - "first_rules.yml"
|
||||||
# - "second_rules.yml"
|
# - "second_rules.yml"
|
||||||
- 'alerts.yml'
|
# - 'alerts.yml'
|
||||||
|
|
||||||
# A scrape configuration containing exactly one endpoint to scrape:
|
# A scrape configuration containing exactly one endpoint to scrape:
|
||||||
# Here it's Prometheus itself.
|
# Here it's Prometheus itself.
|
||||||
0
deploy/docker-swarm/clickhouse-setup/.gitkeep
Normal file
0
deploy/docker-swarm/clickhouse-setup/.gitkeep
Normal file
@@ -1,35 +0,0 @@
|
|||||||
global:
|
|
||||||
resolve_timeout: 1m
|
|
||||||
slack_api_url: 'https://hooks.slack.com/services/xxx'
|
|
||||||
|
|
||||||
route:
|
|
||||||
receiver: 'slack-notifications'
|
|
||||||
|
|
||||||
receivers:
|
|
||||||
- name: 'slack-notifications'
|
|
||||||
slack_configs:
|
|
||||||
- channel: '#alerts'
|
|
||||||
send_resolved: true
|
|
||||||
icon_url: https://avatars3.githubusercontent.com/u/3380462
|
|
||||||
title: |-
|
|
||||||
[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }}
|
|
||||||
{{- if gt (len .CommonLabels) (len .GroupLabels) -}}
|
|
||||||
{{" "}}(
|
|
||||||
{{- with .CommonLabels.Remove .GroupLabels.Names }}
|
|
||||||
{{- range $index, $label := .SortedPairs -}}
|
|
||||||
{{ if $index }}, {{ end }}
|
|
||||||
{{- $label.Name }}="{{ $label.Value -}}"
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
)
|
|
||||||
{{- end }}
|
|
||||||
text: >-
|
|
||||||
{{ range .Alerts -}}
|
|
||||||
*Alert:* {{ .Annotations.title }}{{ if .Labels.severity }} - `{{ .Labels.severity }}`{{ end }}
|
|
||||||
|
|
||||||
*Description:* {{ .Annotations.description }}
|
|
||||||
|
|
||||||
*Details:*
|
|
||||||
{{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
groups:
|
|
||||||
- name: ExampleCPULoadGroup
|
|
||||||
rules:
|
|
||||||
- alert: HighCpuLoad
|
|
||||||
expr: system_cpu_load_average_1m > 0.1
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: High CPU load
|
|
||||||
description: "CPU load is > 0.1\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<clickhouse>
|
|
||||||
<!-- ZooKeeper is used to store metadata about replicas, when using Replicated tables.
|
|
||||||
Optional. If you don't use replicated tables, you could omit that.
|
|
||||||
|
|
||||||
See https://clickhouse.com/docs/en/engines/table-engines/mergetree-family/replication/
|
|
||||||
-->
|
|
||||||
<zookeeper>
|
|
||||||
<node index="1">
|
|
||||||
<host>zookeeper-1</host>
|
|
||||||
<port>2181</port>
|
|
||||||
</node>
|
|
||||||
<!-- <node index="2">
|
|
||||||
<host>zookeeper-2</host>
|
|
||||||
<port>2181</port>
|
|
||||||
</node>
|
|
||||||
<node index="3">
|
|
||||||
<host>zookeeper-3</host>
|
|
||||||
<port>2181</port>
|
|
||||||
</node> -->
|
|
||||||
</zookeeper>
|
|
||||||
|
|
||||||
<!-- Configuration of clusters that could be used in Distributed tables.
|
|
||||||
https://clickhouse.com/docs/en/operations/table_engines/distributed/
|
|
||||||
-->
|
|
||||||
<remote_servers>
|
|
||||||
<cluster>
|
|
||||||
<!-- Inter-server per-cluster secret for Distributed queries
|
|
||||||
default: no secret (no authentication will be performed)
|
|
||||||
|
|
||||||
If set, then Distributed queries will be validated on shards, so at least:
|
|
||||||
- such cluster should exist on the shard,
|
|
||||||
- such cluster should have the same secret.
|
|
||||||
|
|
||||||
And also (and which is more important), the initial_user will
|
|
||||||
be used as current user for the query.
|
|
||||||
|
|
||||||
Right now the protocol is pretty simple and it only takes into account:
|
|
||||||
- cluster name
|
|
||||||
- query
|
|
||||||
|
|
||||||
Also it will be nice if the following will be implemented:
|
|
||||||
- source hostname (see interserver_http_host), but then it will depends from DNS,
|
|
||||||
it can use IP address instead, but then the you need to get correct on the initiator node.
|
|
||||||
- target hostname / ip address (same notes as for source hostname)
|
|
||||||
- time-based security tokens
|
|
||||||
-->
|
|
||||||
<!-- <secret></secret> -->
|
|
||||||
<shard>
|
|
||||||
<!-- Optional. Whether to write data to just one of the replicas. Default: false (write data to all replicas). -->
|
|
||||||
<!-- <internal_replication>false</internal_replication> -->
|
|
||||||
<!-- Optional. Shard weight when writing data. Default: 1. -->
|
|
||||||
<!-- <weight>1</weight> -->
|
|
||||||
<replica>
|
|
||||||
<host>clickhouse</host>
|
|
||||||
<port>9000</port>
|
|
||||||
<!-- Optional. Priority of the replica for load_balancing. Default: 1 (less value has more priority). -->
|
|
||||||
<!-- <priority>1</priority> -->
|
|
||||||
</replica>
|
|
||||||
</shard>
|
|
||||||
<!-- <shard>
|
|
||||||
<replica>
|
|
||||||
<host>clickhouse-2</host>
|
|
||||||
<port>9000</port>
|
|
||||||
</replica>
|
|
||||||
</shard>
|
|
||||||
<shard>
|
|
||||||
<replica>
|
|
||||||
<host>clickhouse-3</host>
|
|
||||||
<port>9000</port>
|
|
||||||
</replica>
|
|
||||||
</shard> -->
|
|
||||||
</cluster>
|
|
||||||
</remote_servers>
|
|
||||||
</clickhouse>
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,288 +0,0 @@
|
|||||||
version: "3.9"
|
|
||||||
|
|
||||||
x-clickhouse-defaults: &clickhouse-defaults
|
|
||||||
image: clickhouse/clickhouse-server:24.1.2-alpine
|
|
||||||
tty: true
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
depends_on:
|
|
||||||
- zookeeper-1
|
|
||||||
# - zookeeper-2
|
|
||||||
# - zookeeper-3
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
healthcheck:
|
|
||||||
# "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'"
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD",
|
|
||||||
"wget",
|
|
||||||
"--spider",
|
|
||||||
"-q",
|
|
||||||
"0.0.0.0:8123/ping"
|
|
||||||
]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
ulimits:
|
|
||||||
nproc: 65535
|
|
||||||
nofile:
|
|
||||||
soft: 262144
|
|
||||||
hard: 262144
|
|
||||||
|
|
||||||
x-db-depend: &db-depend
|
|
||||||
depends_on:
|
|
||||||
- clickhouse
|
|
||||||
- otel-collector-migrator
|
|
||||||
# - clickhouse-2
|
|
||||||
# - clickhouse-3
|
|
||||||
|
|
||||||
|
|
||||||
services:
|
|
||||||
zookeeper-1:
|
|
||||||
image: bitnami/zookeeper:3.7.1
|
|
||||||
hostname: zookeeper-1
|
|
||||||
user: root
|
|
||||||
ports:
|
|
||||||
- "2181:2181"
|
|
||||||
- "2888:2888"
|
|
||||||
- "3888:3888"
|
|
||||||
volumes:
|
|
||||||
- ./data/zookeeper-1:/bitnami/zookeeper
|
|
||||||
environment:
|
|
||||||
- ZOO_SERVER_ID=1
|
|
||||||
# - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
|
||||||
- ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
- ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
# zookeeper-2:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# hostname: zookeeper-2
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2182:2181"
|
|
||||||
# - "2889:2888"
|
|
||||||
# - "3889:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-2:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=2
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
# zookeeper-3:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# hostname: zookeeper-3
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2183:2181"
|
|
||||||
# - "2890:2888"
|
|
||||||
# - "3890:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-3:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=3
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
clickhouse:
|
|
||||||
<<: *clickhouse-defaults
|
|
||||||
hostname: clickhouse
|
|
||||||
# ports:
|
|
||||||
# - "9000:9000"
|
|
||||||
# - "8123:8123"
|
|
||||||
# - "9181:9181"
|
|
||||||
volumes:
|
|
||||||
- ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
- ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
- ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
- ./data/clickhouse/:/var/lib/clickhouse/
|
|
||||||
|
|
||||||
# clickhouse-2:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# hostname: clickhouse-2
|
|
||||||
# ports:
|
|
||||||
# - "9001:9000"
|
|
||||||
# - "8124:8123"
|
|
||||||
# - "9182:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-2/:/var/lib/clickhouse/
|
|
||||||
|
|
||||||
# clickhouse-3:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# hostname: clickhouse-3
|
|
||||||
# ports:
|
|
||||||
# - "9002:9000"
|
|
||||||
# - "8125:8123"
|
|
||||||
# - "9183:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-3/:/var/lib/clickhouse/
|
|
||||||
|
|
||||||
alertmanager:
|
|
||||||
image: signoz/alertmanager:0.23.5
|
|
||||||
volumes:
|
|
||||||
- ./data/alertmanager:/data
|
|
||||||
command:
|
|
||||||
- --queryService.url=http://query-service:8085
|
|
||||||
- --storage.path=/data
|
|
||||||
depends_on:
|
|
||||||
- query-service
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
|
|
||||||
query-service:
|
|
||||||
image: signoz/query-service:0.55.0
|
|
||||||
command:
|
|
||||||
[
|
|
||||||
"-config=/root/config/prometheus.yml",
|
|
||||||
"--use-logs-new-schema=true"
|
|
||||||
]
|
|
||||||
# ports:
|
|
||||||
# - "6060:6060" # pprof port
|
|
||||||
# - "8080:8080" # query-service port
|
|
||||||
volumes:
|
|
||||||
- ./prometheus.yml:/root/config/prometheus.yml
|
|
||||||
- ../dashboards:/root/config/dashboards
|
|
||||||
- ./data/signoz/:/var/lib/signoz/
|
|
||||||
environment:
|
|
||||||
- ClickHouseUrl=tcp://clickhouse:9000
|
|
||||||
- ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/
|
|
||||||
- SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db
|
|
||||||
- DASHBOARDS_PATH=/root/config/dashboards
|
|
||||||
- STORAGE=clickhouse
|
|
||||||
- GODEBUG=netdns=go
|
|
||||||
- TELEMETRY_ENABLED=true
|
|
||||||
- DEPLOYMENT_TYPE=docker-swarm
|
|
||||||
healthcheck:
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD",
|
|
||||||
"wget",
|
|
||||||
"--spider",
|
|
||||||
"-q",
|
|
||||||
"localhost:8080/api/v1/health"
|
|
||||||
]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
<<: *db-depend
|
|
||||||
|
|
||||||
frontend:
|
|
||||||
image: signoz/frontend:0.55.0
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
depends_on:
|
|
||||||
- alertmanager
|
|
||||||
- query-service
|
|
||||||
ports:
|
|
||||||
- "3301:3301"
|
|
||||||
volumes:
|
|
||||||
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
|
|
||||||
|
|
||||||
otel-collector:
|
|
||||||
image: signoz/signoz-otel-collector:0.102.10
|
|
||||||
command:
|
|
||||||
[
|
|
||||||
"--config=/etc/otel-collector-config.yaml",
|
|
||||||
"--manager-config=/etc/manager-config.yaml",
|
|
||||||
"--feature-gates=-pkg.translator.prometheus.NormalizeName"
|
|
||||||
]
|
|
||||||
user: root # required for reading docker container logs
|
|
||||||
volumes:
|
|
||||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
|
||||||
- ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
|
||||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
||||||
- /:/hostfs:ro
|
|
||||||
environment:
|
|
||||||
- OTEL_RESOURCE_ATTRIBUTES=host.name={{.Node.Hostname}},os.type={{.Node.Platform.OS}},dockerswarm.service.name={{.Service.Name}},dockerswarm.task.name={{.Task.Name}}
|
|
||||||
- DOCKER_MULTI_NODE_CLUSTER=false
|
|
||||||
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
|
||||||
ports:
|
|
||||||
# - "1777:1777" # pprof extension
|
|
||||||
- "4317:4317" # OTLP gRPC receiver
|
|
||||||
- "4318:4318" # OTLP HTTP receiver
|
|
||||||
# - "8888:8888" # OtelCollector internal metrics
|
|
||||||
# - "8889:8889" # signoz spanmetrics exposed by the agent
|
|
||||||
# - "9411:9411" # Zipkin port
|
|
||||||
# - "13133:13133" # Health check extension
|
|
||||||
# - "14250:14250" # Jaeger gRPC
|
|
||||||
# - "14268:14268" # Jaeger thrift HTTP
|
|
||||||
# - "55678:55678" # OpenCensus receiver
|
|
||||||
# - "55679:55679" # zPages extension
|
|
||||||
deploy:
|
|
||||||
mode: global
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
depends_on:
|
|
||||||
- clickhouse
|
|
||||||
- otel-collector-migrator
|
|
||||||
- query-service
|
|
||||||
|
|
||||||
otel-collector-migrator:
|
|
||||||
image: signoz/signoz-schema-migrator:0.102.10
|
|
||||||
deploy:
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
delay: 5s
|
|
||||||
command:
|
|
||||||
- "--dsn=tcp://clickhouse:9000"
|
|
||||||
depends_on:
|
|
||||||
- clickhouse
|
|
||||||
# - clickhouse-2
|
|
||||||
# - clickhouse-3
|
|
||||||
|
|
||||||
logspout:
|
|
||||||
image: "gliderlabs/logspout:v3.2.14"
|
|
||||||
volumes:
|
|
||||||
- /etc/hostname:/etc/host_hostname:ro
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
command: syslog+tcp://otel-collector:2255
|
|
||||||
depends_on:
|
|
||||||
- otel-collector
|
|
||||||
deploy:
|
|
||||||
mode: global
|
|
||||||
restart_policy:
|
|
||||||
condition: on-failure
|
|
||||||
|
|
||||||
hotrod:
|
|
||||||
image: jaegertracing/example-hotrod:1.30
|
|
||||||
command: [ "all" ]
|
|
||||||
environment:
|
|
||||||
- JAEGER_ENDPOINT=http://otel-collector:14268/api/traces
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
|
|
||||||
load-hotrod:
|
|
||||||
image: "signoz/locust:1.2.3"
|
|
||||||
hostname: load-hotrod
|
|
||||||
environment:
|
|
||||||
ATTACKED_HOST: http://hotrod:8080
|
|
||||||
LOCUST_MODE: standalone
|
|
||||||
NO_PROXY: standalone
|
|
||||||
TASK_DELAY_FROM: 5
|
|
||||||
TASK_DELAY_TO: 30
|
|
||||||
QUIET_MODE: "${QUIET_MODE:-false}"
|
|
||||||
LOCUST_OPTS: "--headless -u 10 -r 1"
|
|
||||||
volumes:
|
|
||||||
- ../common/locust-scripts:/locust
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
CREATE TABLE IF NOT EXISTS signoz_index (
|
|
||||||
timestamp DateTime64(9) CODEC(Delta, ZSTD(1)),
|
|
||||||
traceID String CODEC(ZSTD(1)),
|
|
||||||
spanID String CODEC(ZSTD(1)),
|
|
||||||
parentSpanID String CODEC(ZSTD(1)),
|
|
||||||
serviceName LowCardinality(String) CODEC(ZSTD(1)),
|
|
||||||
name LowCardinality(String) CODEC(ZSTD(1)),
|
|
||||||
kind Int32 CODEC(ZSTD(1)),
|
|
||||||
durationNano UInt64 CODEC(ZSTD(1)),
|
|
||||||
tags Array(String) CODEC(ZSTD(1)),
|
|
||||||
tagsKeys Array(String) CODEC(ZSTD(1)),
|
|
||||||
tagsValues Array(String) CODEC(ZSTD(1)),
|
|
||||||
statusCode Int64 CODEC(ZSTD(1)),
|
|
||||||
references String CODEC(ZSTD(1)),
|
|
||||||
externalHttpMethod Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
externalHttpUrl Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
component Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
dbSystem Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
dbName Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
dbOperation Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
peerService Nullable(String) CODEC(ZSTD(1)),
|
|
||||||
INDEX idx_traceID traceID TYPE bloom_filter GRANULARITY 4,
|
|
||||||
INDEX idx_service serviceName TYPE bloom_filter GRANULARITY 4,
|
|
||||||
INDEX idx_name name TYPE bloom_filter GRANULARITY 4,
|
|
||||||
INDEX idx_kind kind TYPE minmax GRANULARITY 4,
|
|
||||||
INDEX idx_tagsKeys tagsKeys TYPE bloom_filter(0.01) GRANULARITY 64,
|
|
||||||
INDEX idx_tagsValues tagsValues TYPE bloom_filter(0.01) GRANULARITY 64,
|
|
||||||
INDEX idx_duration durationNano TYPE minmax GRANULARITY 1
|
|
||||||
) ENGINE MergeTree()
|
|
||||||
PARTITION BY toDate(timestamp)
|
|
||||||
ORDER BY (serviceName, -toUnixTimestamp(timestamp))
|
|
||||||
@@ -1,183 +0,0 @@
|
|||||||
receivers:
|
|
||||||
tcplog/docker:
|
|
||||||
listen_address: "0.0.0.0:2255"
|
|
||||||
operators:
|
|
||||||
- type: regex_parser
|
|
||||||
regex: '^<([0-9]+)>[0-9]+ (?P<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?) (?P<container_id>\S+) (?P<container_name>\S+) [0-9]+ - -( (?P<body>.*))?'
|
|
||||||
timestamp:
|
|
||||||
parse_from: attributes.timestamp
|
|
||||||
layout: '%Y-%m-%dT%H:%M:%S.%LZ'
|
|
||||||
- type: move
|
|
||||||
from: attributes["body"]
|
|
||||||
to: body
|
|
||||||
- type: remove
|
|
||||||
field: attributes.timestamp
|
|
||||||
# please remove names from below if you want to collect logs from them
|
|
||||||
- type: filter
|
|
||||||
id: signoz_logs_filter
|
|
||||||
expr: 'attributes.container_name matches "^signoz_(logspout|frontend|alertmanager|query-service|otel-collector|clickhouse|zookeeper)"'
|
|
||||||
opencensus:
|
|
||||||
endpoint: 0.0.0.0:55678
|
|
||||||
otlp:
|
|
||||||
protocols:
|
|
||||||
grpc:
|
|
||||||
endpoint: 0.0.0.0:4317
|
|
||||||
http:
|
|
||||||
endpoint: 0.0.0.0:4318
|
|
||||||
jaeger:
|
|
||||||
protocols:
|
|
||||||
grpc:
|
|
||||||
endpoint: 0.0.0.0:14250
|
|
||||||
thrift_http:
|
|
||||||
endpoint: 0.0.0.0:14268
|
|
||||||
# thrift_compact:
|
|
||||||
# endpoint: 0.0.0.0:6831
|
|
||||||
# thrift_binary:
|
|
||||||
# endpoint: 0.0.0.0:6832
|
|
||||||
hostmetrics:
|
|
||||||
collection_interval: 30s
|
|
||||||
root_path: /hostfs
|
|
||||||
scrapers:
|
|
||||||
cpu: {}
|
|
||||||
load: {}
|
|
||||||
memory: {}
|
|
||||||
disk: {}
|
|
||||||
filesystem: {}
|
|
||||||
network: {}
|
|
||||||
prometheus:
|
|
||||||
config:
|
|
||||||
global:
|
|
||||||
scrape_interval: 60s
|
|
||||||
scrape_configs:
|
|
||||||
# otel-collector internal metrics
|
|
||||||
- job_name: otel-collector
|
|
||||||
static_configs:
|
|
||||||
- targets:
|
|
||||||
- localhost:8888
|
|
||||||
labels:
|
|
||||||
job_name: otel-collector
|
|
||||||
|
|
||||||
processors:
|
|
||||||
batch:
|
|
||||||
send_batch_size: 10000
|
|
||||||
send_batch_max_size: 11000
|
|
||||||
timeout: 10s
|
|
||||||
resourcedetection:
|
|
||||||
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
|
||||||
detectors: [env, system] # include ec2 for AWS, gcp for GCP and azure for Azure.
|
|
||||||
timeout: 2s
|
|
||||||
signozspanmetrics/cumulative:
|
|
||||||
metrics_exporter: clickhousemetricswrite
|
|
||||||
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
|
|
||||||
dimensions_cache_size: 100000
|
|
||||||
dimensions:
|
|
||||||
- name: service.namespace
|
|
||||||
default: default
|
|
||||||
- name: deployment.environment
|
|
||||||
default: default
|
|
||||||
# This is added to ensure the uniqueness of the timeseries
|
|
||||||
# Otherwise, identical timeseries produced by multiple replicas of
|
|
||||||
# collectors result in incorrect APM metrics
|
|
||||||
- name: signoz.collector.id
|
|
||||||
- name: service.version
|
|
||||||
- name: browser.platform
|
|
||||||
- name: browser.mobile
|
|
||||||
- name: k8s.cluster.name
|
|
||||||
- name: k8s.node.name
|
|
||||||
- name: k8s.namespace.name
|
|
||||||
- name: host.name
|
|
||||||
- name: host.type
|
|
||||||
- name: container.name
|
|
||||||
# memory_limiter:
|
|
||||||
# # 80% of maximum memory up to 2G
|
|
||||||
# limit_mib: 1500
|
|
||||||
# # 25% of limit up to 2G
|
|
||||||
# spike_limit_mib: 512
|
|
||||||
# check_interval: 5s
|
|
||||||
#
|
|
||||||
# # 50% of the maximum memory
|
|
||||||
# limit_percentage: 50
|
|
||||||
# # 20% of max memory usage spike expected
|
|
||||||
# spike_limit_percentage: 20
|
|
||||||
# queued_retry:
|
|
||||||
# num_workers: 4
|
|
||||||
# queue_size: 100
|
|
||||||
# retry_on_failure: true
|
|
||||||
signozspanmetrics/delta:
|
|
||||||
metrics_exporter: clickhousemetricswrite
|
|
||||||
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
|
|
||||||
dimensions_cache_size: 100000
|
|
||||||
aggregation_temporality: AGGREGATION_TEMPORALITY_DELTA
|
|
||||||
enable_exp_histogram: true
|
|
||||||
dimensions:
|
|
||||||
- name: service.namespace
|
|
||||||
default: default
|
|
||||||
- name: deployment.environment
|
|
||||||
default: default
|
|
||||||
# This is added to ensure the uniqueness of the timeseries
|
|
||||||
# Otherwise, identical timeseries produced by multiple replicas of
|
|
||||||
# collectors result in incorrect APM metrics
|
|
||||||
- name: signoz.collector.id
|
|
||||||
- name: service.version
|
|
||||||
- name: browser.platform
|
|
||||||
- name: browser.mobile
|
|
||||||
- name: k8s.cluster.name
|
|
||||||
- name: k8s.node.name
|
|
||||||
- name: k8s.namespace.name
|
|
||||||
- name: host.name
|
|
||||||
- name: host.type
|
|
||||||
- name: container.name
|
|
||||||
|
|
||||||
exporters:
|
|
||||||
clickhousetraces:
|
|
||||||
datasource: tcp://clickhouse:9000/signoz_traces
|
|
||||||
docker_multi_node_cluster: ${DOCKER_MULTI_NODE_CLUSTER}
|
|
||||||
low_cardinal_exception_grouping: ${LOW_CARDINAL_EXCEPTION_GROUPING}
|
|
||||||
clickhousemetricswrite:
|
|
||||||
endpoint: tcp://clickhouse:9000/signoz_metrics
|
|
||||||
resource_to_telemetry_conversion:
|
|
||||||
enabled: true
|
|
||||||
clickhousemetricswrite/prometheus:
|
|
||||||
endpoint: tcp://clickhouse:9000/signoz_metrics
|
|
||||||
# logging: {}
|
|
||||||
clickhouselogsexporter:
|
|
||||||
dsn: tcp://clickhouse:9000/signoz_logs
|
|
||||||
docker_multi_node_cluster: ${DOCKER_MULTI_NODE_CLUSTER}
|
|
||||||
timeout: 10s
|
|
||||||
use_new_schema: true
|
|
||||||
extensions:
|
|
||||||
health_check:
|
|
||||||
endpoint: 0.0.0.0:13133
|
|
||||||
zpages:
|
|
||||||
endpoint: 0.0.0.0:55679
|
|
||||||
pprof:
|
|
||||||
endpoint: 0.0.0.0:1777
|
|
||||||
|
|
||||||
service:
|
|
||||||
telemetry:
|
|
||||||
logs:
|
|
||||||
encoding: json
|
|
||||||
metrics:
|
|
||||||
address: 0.0.0.0:8888
|
|
||||||
extensions: [health_check, zpages, pprof]
|
|
||||||
pipelines:
|
|
||||||
traces:
|
|
||||||
receivers: [jaeger, otlp]
|
|
||||||
processors: [signozspanmetrics/cumulative, signozspanmetrics/delta, batch]
|
|
||||||
exporters: [clickhousetraces]
|
|
||||||
metrics:
|
|
||||||
receivers: [otlp]
|
|
||||||
processors: [batch]
|
|
||||||
exporters: [clickhousemetricswrite]
|
|
||||||
metrics/generic:
|
|
||||||
receivers: [hostmetrics]
|
|
||||||
processors: [resourcedetection, batch]
|
|
||||||
exporters: [clickhousemetricswrite]
|
|
||||||
metrics/prometheus:
|
|
||||||
receivers: [prometheus]
|
|
||||||
processors: [batch]
|
|
||||||
exporters: [clickhousemetricswrite/prometheus]
|
|
||||||
logs:
|
|
||||||
receivers: [otlp, tcplog/docker]
|
|
||||||
processors: [batch]
|
|
||||||
exporters: [clickhouselogsexporter]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
server_endpoint: ws://query-service:4320/v1/opamp
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
# my global config
|
|
||||||
global:
|
|
||||||
scrape_interval: 5s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
|
|
||||||
evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
|
|
||||||
# scrape_timeout is set to the global default (10s).
|
|
||||||
|
|
||||||
# Alertmanager configuration
|
|
||||||
alerting:
|
|
||||||
alertmanagers:
|
|
||||||
- static_configs:
|
|
||||||
- targets:
|
|
||||||
- alertmanager:9093
|
|
||||||
|
|
||||||
# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
|
|
||||||
rule_files:
|
|
||||||
# - "first_rules.yml"
|
|
||||||
# - "second_rules.yml"
|
|
||||||
- 'alerts.yml'
|
|
||||||
|
|
||||||
# A scrape configuration containing exactly one endpoint to scrape:
|
|
||||||
# Here it's Prometheus itself.
|
|
||||||
scrape_configs: []
|
|
||||||
|
|
||||||
remote_read:
|
|
||||||
- url: tcp://clickhouse:9000/signoz_metrics
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
server {
|
|
||||||
listen 3301;
|
|
||||||
server_name _;
|
|
||||||
|
|
||||||
gzip on;
|
|
||||||
gzip_static on;
|
|
||||||
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_vary on;
|
|
||||||
gzip_comp_level 6;
|
|
||||||
gzip_buffers 16 8k;
|
|
||||||
gzip_http_version 1.1;
|
|
||||||
|
|
||||||
# to handle uri issue 414 from nginx
|
|
||||||
client_max_body_size 24M;
|
|
||||||
large_client_header_buffers 8 128k;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
if ( $uri = '/index.html' ) {
|
|
||||||
add_header Cache-Control no-store always;
|
|
||||||
}
|
|
||||||
root /usr/share/nginx/html;
|
|
||||||
index index.html index.htm;
|
|
||||||
try_files $uri $uri/ /index.html;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/api/(v1|v3)/logs/(tail|livetail){
|
|
||||||
proxy_pass http://query-service:8080;
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
|
|
||||||
# connection will be closed if no data is read for 600s between successive read operations
|
|
||||||
proxy_read_timeout 600s;
|
|
||||||
|
|
||||||
# dont buffer the data send it directly to client.
|
|
||||||
proxy_buffering off;
|
|
||||||
proxy_cache off;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /api {
|
|
||||||
proxy_pass http://query-service:8080/api;
|
|
||||||
# connection will be closed if no data is read for 600s between successive read operations
|
|
||||||
proxy_read_timeout 600s;
|
|
||||||
}
|
|
||||||
|
|
||||||
# redirect server error pages to the static page /50x.html
|
|
||||||
#
|
|
||||||
error_page 500 502 503 504 /50x.html;
|
|
||||||
location = /50x.html {
|
|
||||||
root /usr/share/nginx/html;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
263
deploy/docker-swarm/docker-compose.ha.yaml
Normal file
263
deploy/docker-swarm/docker-compose.ha.yaml
Normal file
@@ -0,0 +1,263 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
x-clickhouse-defaults: &clickhouse-defaults
|
||||||
|
!!merge <<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
tty: true
|
||||||
|
deploy:
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9363"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
depends_on:
|
||||||
|
- zookeeper-1
|
||||||
|
- zookeeper-2
|
||||||
|
- zookeeper-3
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- 0.0.0.0:8123/ping
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 262144
|
||||||
|
hard: 262144
|
||||||
|
x-zookeeper-defaults: &zookeeper-defaults
|
||||||
|
!!merge <<: *common
|
||||||
|
image: bitnami/zookeeper:3.7.1
|
||||||
|
user: root
|
||||||
|
deploy:
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9141"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
x-db-depend: &db-depend
|
||||||
|
!!merge <<: *common
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
- clickhouse-2
|
||||||
|
- clickhouse-3
|
||||||
|
- schema-migrator
|
||||||
|
services:
|
||||||
|
init-clickhouse:
|
||||||
|
!!merge <<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
version="v0.0.1"
|
||||||
|
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
|
||||||
|
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
|
||||||
|
cd /tmp
|
||||||
|
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
|
||||||
|
tar -xvzf histogram-quantile.tar.gz
|
||||||
|
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
zookeeper-1:
|
||||||
|
!!merge <<: *zookeeper-defaults
|
||||||
|
# ports:
|
||||||
|
# - "2181:2181"
|
||||||
|
# - "2888:2888"
|
||||||
|
# - "3888:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-1:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=1
|
||||||
|
- ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
zookeeper-2:
|
||||||
|
!!merge <<: *zookeeper-defaults
|
||||||
|
# ports:
|
||||||
|
# - "2182:2181"
|
||||||
|
# - "2889:2888"
|
||||||
|
# - "3889:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-2:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=2
|
||||||
|
- ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
zookeeper-3:
|
||||||
|
!!merge <<: *zookeeper-defaults
|
||||||
|
# ports:
|
||||||
|
# - "2183:2181"
|
||||||
|
# - "2890:2888"
|
||||||
|
# - "3890:3888"
|
||||||
|
volumes:
|
||||||
|
- ./clickhouse-setup/data/zookeeper-3:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=3
|
||||||
|
- ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
clickhouse:
|
||||||
|
!!merge <<: *clickhouse-defaults
|
||||||
|
# TODO: needed for schema-migrator to work, remove this redundancy once we have a better solution
|
||||||
|
hostname: clickhouse
|
||||||
|
# ports:
|
||||||
|
# - "9000:9000"
|
||||||
|
# - "8123:8123"
|
||||||
|
# - "9181:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- ./clickhouse-setup/data/clickhouse/:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
clickhouse-2:
|
||||||
|
!!merge <<: *clickhouse-defaults
|
||||||
|
hostname: clickhouse-2
|
||||||
|
# ports:
|
||||||
|
# - "9001:9000"
|
||||||
|
# - "8124:8123"
|
||||||
|
# - "9182:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- ./clickhouse-setup/data/clickhouse-2/:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
clickhouse-3:
|
||||||
|
!!merge <<: *clickhouse-defaults
|
||||||
|
hostname: clickhouse-3
|
||||||
|
# ports:
|
||||||
|
# - "9002:9000"
|
||||||
|
# - "8125:8123"
|
||||||
|
# - "9183:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- ./clickhouse-setup/data/clickhouse-3/:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
signoz:
|
||||||
|
!!merge <<: *db-depend
|
||||||
|
image: signoz/signoz:v0.80.0
|
||||||
|
command:
|
||||||
|
- --config=/root/config/prometheus.yml
|
||||||
|
- --use-logs-new-schema=true
|
||||||
|
- --use-trace-new-schema=true
|
||||||
|
ports:
|
||||||
|
- "8080:8080" # signoz port
|
||||||
|
# - "6060:6060" # pprof port
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/prometheus.yml:/root/config/prometheus.yml
|
||||||
|
- ../common/dashboards:/root/config/dashboards
|
||||||
|
- ./clickhouse-setup/data/signoz/:/var/lib/signoz/
|
||||||
|
environment:
|
||||||
|
- SIGNOZ_ALERTMANAGER_PROVIDER=signoz
|
||||||
|
- SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000
|
||||||
|
- SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db
|
||||||
|
- DASHBOARDS_PATH=/root/config/dashboards
|
||||||
|
- STORAGE=clickhouse
|
||||||
|
- GODEBUG=netdns=go
|
||||||
|
- TELEMETRY_ENABLED=true
|
||||||
|
- DEPLOYMENT_TYPE=docker-swarm
|
||||||
|
- SIGNOZ_JWT_SECRET=secret
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- localhost:8080/api/v1/health
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
otel-collector:
|
||||||
|
!!merge <<: *db-depend
|
||||||
|
image: signoz/signoz-otel-collector:v0.111.39
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
- --manager-config=/etc/manager-config.yaml
|
||||||
|
- --copy-path=/var/tmp/collector-config.yaml
|
||||||
|
- --feature-gates=-pkg.translator.prometheus.NormalizeName
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- ../common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
||||||
|
environment:
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name={{.Node.Hostname}},os.type={{.Node.Platform.OS}}
|
||||||
|
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
||||||
|
ports:
|
||||||
|
# - "1777:1777" # pprof extension
|
||||||
|
- "4317:4317" # OTLP gRPC receiver
|
||||||
|
- "4318:4318" # OTLP HTTP receiver
|
||||||
|
deploy:
|
||||||
|
replicas: 3
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
- schema-migrator
|
||||||
|
- signoz
|
||||||
|
schema-migrator:
|
||||||
|
!!merge <<: *common
|
||||||
|
image: signoz/signoz-schema-migrator:v0.111.39
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
entrypoint: sh
|
||||||
|
command:
|
||||||
|
- -c
|
||||||
|
- "/signoz-schema-migrator sync --dsn=tcp://clickhouse:9000 --up= && /signoz-schema-migrator async --dsn=tcp://clickhouse:9000 --up="
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
volumes:
|
||||||
|
clickhouse:
|
||||||
|
name: signoz-clickhouse
|
||||||
|
clickhouse-2:
|
||||||
|
name: signoz-clickhouse-2
|
||||||
|
clickhouse-3:
|
||||||
|
name: signoz-clickhouse-3
|
||||||
|
sqlite:
|
||||||
|
name: signoz-sqlite
|
||||||
|
zookeeper-1:
|
||||||
|
name: signoz-zookeeper-1
|
||||||
|
zookeeper-2:
|
||||||
|
name: signoz-zookeeper-2
|
||||||
|
zookeeper-3:
|
||||||
|
name: signoz-zookeeper-3
|
||||||
190
deploy/docker-swarm/docker-compose.yaml
Normal file
190
deploy/docker-swarm/docker-compose.yaml
Normal file
@@ -0,0 +1,190 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
x-clickhouse-defaults: &clickhouse-defaults
|
||||||
|
!!merge <<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
tty: true
|
||||||
|
deploy:
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9363"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
depends_on:
|
||||||
|
- init-clickhouse
|
||||||
|
- zookeeper-1
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- 0.0.0.0:8123/ping
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 262144
|
||||||
|
hard: 262144
|
||||||
|
x-zookeeper-defaults: &zookeeper-defaults
|
||||||
|
!!merge <<: *common
|
||||||
|
image: bitnami/zookeeper:3.7.1
|
||||||
|
user: root
|
||||||
|
deploy:
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9141"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
x-db-depend: &db-depend
|
||||||
|
!!merge <<: *common
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
- schema-migrator
|
||||||
|
services:
|
||||||
|
init-clickhouse:
|
||||||
|
!!merge <<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
version="v0.0.1"
|
||||||
|
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
|
||||||
|
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
|
||||||
|
cd /tmp
|
||||||
|
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
|
||||||
|
tar -xvzf histogram-quantile.tar.gz
|
||||||
|
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
zookeeper-1:
|
||||||
|
!!merge <<: *zookeeper-defaults
|
||||||
|
# ports:
|
||||||
|
# - "2181:2181"
|
||||||
|
# - "2888:2888"
|
||||||
|
# - "3888:3888"
|
||||||
|
volumes:
|
||||||
|
- zookeeper-1:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=1
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
clickhouse:
|
||||||
|
!!merge <<: *clickhouse-defaults
|
||||||
|
# TODO: needed for clickhouse TCP connectio
|
||||||
|
hostname: clickhouse
|
||||||
|
# ports:
|
||||||
|
# - "9000:9000"
|
||||||
|
# - "8123:8123"
|
||||||
|
# - "9181:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- clickhouse:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
signoz:
|
||||||
|
!!merge <<: *db-depend
|
||||||
|
image: signoz/signoz:v0.80.0
|
||||||
|
command:
|
||||||
|
- --config=/root/config/prometheus.yml
|
||||||
|
- --use-logs-new-schema=true
|
||||||
|
- --use-trace-new-schema=true
|
||||||
|
ports:
|
||||||
|
- "8080:8080" # signoz port
|
||||||
|
# - "6060:6060" # pprof port
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/prometheus.yml:/root/config/prometheus.yml
|
||||||
|
- ../common/dashboards:/root/config/dashboards
|
||||||
|
- sqlite:/var/lib/signoz/
|
||||||
|
environment:
|
||||||
|
- SIGNOZ_ALERTMANAGER_PROVIDER=signoz
|
||||||
|
- SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000
|
||||||
|
- SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db
|
||||||
|
- DASHBOARDS_PATH=/root/config/dashboards
|
||||||
|
- STORAGE=clickhouse
|
||||||
|
- GODEBUG=netdns=go
|
||||||
|
- TELEMETRY_ENABLED=true
|
||||||
|
- DEPLOYMENT_TYPE=docker-swarm
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- localhost:8080/api/v1/health
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
otel-collector:
|
||||||
|
!!merge <<: *db-depend
|
||||||
|
image: signoz/signoz-otel-collector:v0.111.39
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
- --manager-config=/etc/manager-config.yaml
|
||||||
|
- --copy-path=/var/tmp/collector-config.yaml
|
||||||
|
- --feature-gates=-pkg.translator.prometheus.NormalizeName
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- ../common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
||||||
|
environment:
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name={{.Node.Hostname}},os.type={{.Node.Platform.OS}}
|
||||||
|
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
||||||
|
ports:
|
||||||
|
# - "1777:1777" # pprof extension
|
||||||
|
- "4317:4317" # OTLP gRPC receiver
|
||||||
|
- "4318:4318" # OTLP HTTP receiver
|
||||||
|
deploy:
|
||||||
|
replicas: 3
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
- schema-migrator
|
||||||
|
- signoz
|
||||||
|
schema-migrator:
|
||||||
|
!!merge <<: *common
|
||||||
|
image: signoz/signoz-schema-migrator:v0.111.39
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
delay: 5s
|
||||||
|
entrypoint: sh
|
||||||
|
command:
|
||||||
|
- -c
|
||||||
|
- "/signoz-schema-migrator sync --dsn=tcp://clickhouse:9000 --up= && /signoz-schema-migrator async --dsn=tcp://clickhouse:9000 --up="
|
||||||
|
depends_on:
|
||||||
|
- clickhouse
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
volumes:
|
||||||
|
clickhouse:
|
||||||
|
name: signoz-clickhouse
|
||||||
|
sqlite:
|
||||||
|
name: signoz-sqlite
|
||||||
|
zookeeper-1:
|
||||||
|
name: signoz-zookeeper-1
|
||||||
38
deploy/docker-swarm/generator/hotrod/docker-compose.yaml
Normal file
38
deploy/docker-swarm/generator/hotrod/docker-compose.yaml
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
extra_hosts:
|
||||||
|
- host.docker.internal:host-gateway
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
services:
|
||||||
|
hotrod:
|
||||||
|
<<: *common
|
||||||
|
image: jaegertracing/example-hotrod:1.61.0
|
||||||
|
command: [ "all" ]
|
||||||
|
environment:
|
||||||
|
- OTEL_EXPORTER_OTLP_ENDPOINT=http://host.docker.internal:4318 #
|
||||||
|
load-hotrod:
|
||||||
|
<<: *common
|
||||||
|
image: "signoz/locust:1.2.3"
|
||||||
|
environment:
|
||||||
|
ATTACKED_HOST: http://hotrod:8080
|
||||||
|
LOCUST_MODE: standalone
|
||||||
|
NO_PROXY: standalone
|
||||||
|
TASK_DELAY_FROM: 5
|
||||||
|
TASK_DELAY_TO: 30
|
||||||
|
QUIET_MODE: "${QUIET_MODE:-false}"
|
||||||
|
LOCUST_OPTS: "--headless -u 10 -r 1"
|
||||||
|
volumes:
|
||||||
|
- ../../../common/locust-scripts:/locust
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
external: true
|
||||||
69
deploy/docker-swarm/generator/infra/docker-compose.yaml
Normal file
69
deploy/docker-swarm/generator/infra/docker-compose.yaml
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
extra_hosts:
|
||||||
|
- host.docker.internal:host-gateway
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
deploy:
|
||||||
|
mode: global
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
services:
|
||||||
|
otel-agent:
|
||||||
|
<<: *common
|
||||||
|
image: otel/opentelemetry-collector-contrib:0.111.0
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
volumes:
|
||||||
|
- ./otel-agent-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- /:/hostfs:ro
|
||||||
|
environment:
|
||||||
|
- SIGNOZ_COLLECTOR_ENDPOINT=http://host.docker.internal:4317 # In case of external SigNoz or cloud, update the endpoint and access token
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name={{.Node.Hostname}},os.type={{.Node.Platform.OS}}
|
||||||
|
# - SIGNOZ_ACCESS_TOKEN="<your-access-token>"
|
||||||
|
# Before exposing the ports, make sure the ports are not used by other services
|
||||||
|
# ports:
|
||||||
|
# - "4317:4317"
|
||||||
|
# - "4318:4318"
|
||||||
|
otel-metrics:
|
||||||
|
<<: *common
|
||||||
|
image: otel/opentelemetry-collector-contrib:0.111.0
|
||||||
|
user: 0:0 # If you have security concerns, you can replace this with your `UID:GID` that has necessary permissions to docker.sock
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
volumes:
|
||||||
|
- ./otel-metrics-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
environment:
|
||||||
|
- SIGNOZ_COLLECTOR_ENDPOINT=http://host.docker.internal:4317 # In case of external SigNoz or cloud, update the endpoint and access token
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name={{.Node.Hostname}},os.type={{.Node.Platform.OS}}
|
||||||
|
# - SIGNOZ_ACCESS_TOKEN="<your-access-token>"
|
||||||
|
# Before exposing the ports, make sure the ports are not used by other services
|
||||||
|
# ports:
|
||||||
|
# - "4317:4317"
|
||||||
|
# - "4318:4318"
|
||||||
|
deploy:
|
||||||
|
mode: replicated
|
||||||
|
replicas: 1
|
||||||
|
placement:
|
||||||
|
constraints:
|
||||||
|
- node.role == manager
|
||||||
|
logspout:
|
||||||
|
<<: *common
|
||||||
|
image: "gliderlabs/logspout:v3.2.14"
|
||||||
|
command: syslog+tcp://otel-agent:2255
|
||||||
|
user: root
|
||||||
|
volumes:
|
||||||
|
- /etc/hostname:/etc/host_hostname:ro
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
depends_on:
|
||||||
|
- otel-agent
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
external: true
|
||||||
102
deploy/docker-swarm/generator/infra/otel-agent-config.yaml
Normal file
102
deploy/docker-swarm/generator/infra/otel-agent-config.yaml
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
receivers:
|
||||||
|
hostmetrics:
|
||||||
|
collection_interval: 30s
|
||||||
|
root_path: /hostfs
|
||||||
|
scrapers:
|
||||||
|
cpu: {}
|
||||||
|
load: {}
|
||||||
|
memory: {}
|
||||||
|
disk: {}
|
||||||
|
filesystem: {}
|
||||||
|
network: {}
|
||||||
|
otlp:
|
||||||
|
protocols:
|
||||||
|
grpc:
|
||||||
|
endpoint: 0.0.0.0:4317
|
||||||
|
http:
|
||||||
|
endpoint: 0.0.0.0:4318
|
||||||
|
prometheus:
|
||||||
|
config:
|
||||||
|
global:
|
||||||
|
scrape_interval: 60s
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: otel-agent
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
- localhost:8888
|
||||||
|
labels:
|
||||||
|
job_name: otel-agent
|
||||||
|
tcplog/docker:
|
||||||
|
listen_address: "0.0.0.0:2255"
|
||||||
|
operators:
|
||||||
|
- type: regex_parser
|
||||||
|
regex: '^<([0-9]+)>[0-9]+ (?P<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?) (?P<container_id>\S+) (?P<container_name>\S+) [0-9]+ - -( (?P<body>.*))?'
|
||||||
|
timestamp:
|
||||||
|
parse_from: attributes.timestamp
|
||||||
|
layout: '%Y-%m-%dT%H:%M:%S.%LZ'
|
||||||
|
- type: move
|
||||||
|
from: attributes["body"]
|
||||||
|
to: body
|
||||||
|
- type: remove
|
||||||
|
field: attributes.timestamp
|
||||||
|
# please remove names from below if you want to collect logs from them
|
||||||
|
- type: filter
|
||||||
|
id: signoz_logs_filter
|
||||||
|
expr: 'attributes.container_name matches "^(signoz_(logspout|signoz|otel-collector|clickhouse|zookeeper))|(infra_(logspout|otel-agent|otel-metrics)).*"'
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
send_batch_size: 10000
|
||||||
|
send_batch_max_size: 11000
|
||||||
|
timeout: 10s
|
||||||
|
resourcedetection:
|
||||||
|
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
||||||
|
detectors:
|
||||||
|
# - ec2
|
||||||
|
# - gcp
|
||||||
|
# - azure
|
||||||
|
- env
|
||||||
|
- system
|
||||||
|
timeout: 2s
|
||||||
|
extensions:
|
||||||
|
health_check:
|
||||||
|
endpoint: 0.0.0.0:13133
|
||||||
|
pprof:
|
||||||
|
endpoint: 0.0.0.0:1777
|
||||||
|
exporters:
|
||||||
|
otlp:
|
||||||
|
endpoint: ${env:SIGNOZ_COLLECTOR_ENDPOINT}
|
||||||
|
tls:
|
||||||
|
insecure: true
|
||||||
|
headers:
|
||||||
|
signoz-access-token: ${env:SIGNOZ_ACCESS_TOKEN}
|
||||||
|
# debug: {}
|
||||||
|
service:
|
||||||
|
telemetry:
|
||||||
|
logs:
|
||||||
|
encoding: json
|
||||||
|
metrics:
|
||||||
|
address: 0.0.0.0:8888
|
||||||
|
extensions:
|
||||||
|
- health_check
|
||||||
|
- pprof
|
||||||
|
pipelines:
|
||||||
|
traces:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics/hostmetrics:
|
||||||
|
receivers: [hostmetrics]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics/prometheus:
|
||||||
|
receivers: [prometheus]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
logs:
|
||||||
|
receivers: [otlp, tcplog/docker]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
103
deploy/docker-swarm/generator/infra/otel-metrics-config.yaml
Normal file
103
deploy/docker-swarm/generator/infra/otel-metrics-config.yaml
Normal file
@@ -0,0 +1,103 @@
|
|||||||
|
receivers:
|
||||||
|
prometheus:
|
||||||
|
config:
|
||||||
|
global:
|
||||||
|
scrape_interval: 60s
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: otel-metrics
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
- localhost:8888
|
||||||
|
labels:
|
||||||
|
job_name: otel-metrics
|
||||||
|
# For Docker daemon metrics to be scraped, it must be configured to expose
|
||||||
|
# Prometheus metrics, as documented here: https://docs.docker.com/config/daemon/prometheus/
|
||||||
|
# - job_name: docker-daemon
|
||||||
|
# dockerswarm_sd_configs:
|
||||||
|
# - host: unix:///var/run/docker.sock
|
||||||
|
# role: nodes
|
||||||
|
# relabel_configs:
|
||||||
|
# - source_labels: [__meta_dockerswarm_node_address]
|
||||||
|
# target_label: __address__
|
||||||
|
# replacement: $1:9323
|
||||||
|
- job_name: "dockerswarm"
|
||||||
|
dockerswarm_sd_configs:
|
||||||
|
- host: unix:///var/run/docker.sock
|
||||||
|
role: tasks
|
||||||
|
relabel_configs:
|
||||||
|
- action: keep
|
||||||
|
regex: running
|
||||||
|
source_labels:
|
||||||
|
- __meta_dockerswarm_task_desired_state
|
||||||
|
- action: keep
|
||||||
|
regex: true
|
||||||
|
source_labels:
|
||||||
|
- __meta_dockerswarm_service_label_signoz_io_scrape
|
||||||
|
- regex: ([^:]+)(?::\d+)?
|
||||||
|
replacement: $1
|
||||||
|
source_labels:
|
||||||
|
- __address__
|
||||||
|
target_label: swarm_container_ip
|
||||||
|
- separator: .
|
||||||
|
source_labels:
|
||||||
|
- __meta_dockerswarm_service_name
|
||||||
|
- __meta_dockerswarm_task_slot
|
||||||
|
- __meta_dockerswarm_task_id
|
||||||
|
target_label: swarm_container_name
|
||||||
|
- target_label: __address__
|
||||||
|
source_labels:
|
||||||
|
- swarm_container_ip
|
||||||
|
- __meta_dockerswarm_service_label_signoz_io_port
|
||||||
|
separator: ":"
|
||||||
|
- source_labels:
|
||||||
|
- __meta_dockerswarm_service_label_signoz_io_path
|
||||||
|
target_label: __metrics_path__
|
||||||
|
- source_labels:
|
||||||
|
- __meta_dockerswarm_service_label_com_docker_stack_namespace
|
||||||
|
target_label: namespace
|
||||||
|
- source_labels:
|
||||||
|
- __meta_dockerswarm_service_name
|
||||||
|
target_label: service_name
|
||||||
|
- source_labels:
|
||||||
|
- __meta_dockerswarm_task_id
|
||||||
|
target_label: service_instance_id
|
||||||
|
- source_labels:
|
||||||
|
- __meta_dockerswarm_node_hostname
|
||||||
|
target_label: host_name
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
send_batch_size: 10000
|
||||||
|
send_batch_max_size: 11000
|
||||||
|
timeout: 10s
|
||||||
|
resourcedetection:
|
||||||
|
detectors:
|
||||||
|
- env
|
||||||
|
- system
|
||||||
|
timeout: 2s
|
||||||
|
extensions:
|
||||||
|
health_check:
|
||||||
|
endpoint: 0.0.0.0:13133
|
||||||
|
pprof:
|
||||||
|
endpoint: 0.0.0.0:1777
|
||||||
|
exporters:
|
||||||
|
otlp:
|
||||||
|
endpoint: ${env:SIGNOZ_COLLECTOR_ENDPOINT}
|
||||||
|
tls:
|
||||||
|
insecure: true
|
||||||
|
headers:
|
||||||
|
signoz-access-token: ${env:SIGNOZ_ACCESS_TOKEN}
|
||||||
|
# debug: {}
|
||||||
|
service:
|
||||||
|
telemetry:
|
||||||
|
logs:
|
||||||
|
encoding: json
|
||||||
|
metrics:
|
||||||
|
address: 0.0.0.0:8888
|
||||||
|
extensions:
|
||||||
|
- health_check
|
||||||
|
- pprof
|
||||||
|
pipelines:
|
||||||
|
metrics:
|
||||||
|
receivers: [prometheus]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
101
deploy/docker-swarm/otel-collector-config.yaml
Normal file
101
deploy/docker-swarm/otel-collector-config.yaml
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
receivers:
|
||||||
|
otlp:
|
||||||
|
protocols:
|
||||||
|
grpc:
|
||||||
|
endpoint: 0.0.0.0:4317
|
||||||
|
http:
|
||||||
|
endpoint: 0.0.0.0:4318
|
||||||
|
prometheus:
|
||||||
|
config:
|
||||||
|
global:
|
||||||
|
scrape_interval: 60s
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: otel-collector
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
- localhost:8888
|
||||||
|
labels:
|
||||||
|
job_name: otel-collector
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
send_batch_size: 10000
|
||||||
|
send_batch_max_size: 11000
|
||||||
|
timeout: 10s
|
||||||
|
resourcedetection:
|
||||||
|
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
||||||
|
detectors: [env, system]
|
||||||
|
timeout: 2s
|
||||||
|
signozspanmetrics/delta:
|
||||||
|
metrics_exporter: clickhousemetricswrite
|
||||||
|
metrics_flush_interval: 60s
|
||||||
|
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
|
||||||
|
dimensions_cache_size: 100000
|
||||||
|
aggregation_temporality: AGGREGATION_TEMPORALITY_DELTA
|
||||||
|
enable_exp_histogram: true
|
||||||
|
dimensions:
|
||||||
|
- name: service.namespace
|
||||||
|
default: default
|
||||||
|
- name: deployment.environment
|
||||||
|
default: default
|
||||||
|
# This is added to ensure the uniqueness of the timeseries
|
||||||
|
# Otherwise, identical timeseries produced by multiple replicas of
|
||||||
|
# collectors result in incorrect APM metrics
|
||||||
|
- name: signoz.collector.id
|
||||||
|
- name: service.version
|
||||||
|
- name: browser.platform
|
||||||
|
- name: browser.mobile
|
||||||
|
- name: k8s.cluster.name
|
||||||
|
- name: k8s.node.name
|
||||||
|
- name: k8s.namespace.name
|
||||||
|
- name: host.name
|
||||||
|
- name: host.type
|
||||||
|
- name: container.name
|
||||||
|
extensions:
|
||||||
|
health_check:
|
||||||
|
endpoint: 0.0.0.0:13133
|
||||||
|
pprof:
|
||||||
|
endpoint: 0.0.0.0:1777
|
||||||
|
exporters:
|
||||||
|
clickhousetraces:
|
||||||
|
datasource: tcp://clickhouse:9000/signoz_traces
|
||||||
|
low_cardinal_exception_grouping: ${env:LOW_CARDINAL_EXCEPTION_GROUPING}
|
||||||
|
use_new_schema: true
|
||||||
|
clickhousemetricswrite:
|
||||||
|
endpoint: tcp://clickhouse:9000/signoz_metrics
|
||||||
|
resource_to_telemetry_conversion:
|
||||||
|
enabled: true
|
||||||
|
clickhousemetricswrite/prometheus:
|
||||||
|
endpoint: tcp://clickhouse:9000/signoz_metrics
|
||||||
|
signozclickhousemetrics:
|
||||||
|
dsn: tcp://clickhouse:9000/signoz_metrics
|
||||||
|
clickhouselogsexporter:
|
||||||
|
dsn: tcp://clickhouse:9000/signoz_logs
|
||||||
|
timeout: 10s
|
||||||
|
use_new_schema: true
|
||||||
|
# debug: {}
|
||||||
|
service:
|
||||||
|
telemetry:
|
||||||
|
logs:
|
||||||
|
encoding: json
|
||||||
|
metrics:
|
||||||
|
address: 0.0.0.0:8888
|
||||||
|
extensions:
|
||||||
|
- health_check
|
||||||
|
- pprof
|
||||||
|
pipelines:
|
||||||
|
traces:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [signozspanmetrics/delta, batch]
|
||||||
|
exporters: [clickhousetraces]
|
||||||
|
metrics:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [batch]
|
||||||
|
exporters: [clickhousemetricswrite, signozclickhousemetrics]
|
||||||
|
metrics/prometheus:
|
||||||
|
receivers: [prometheus]
|
||||||
|
processors: [batch]
|
||||||
|
exporters: [clickhousemetricswrite/prometheus, signozclickhousemetrics]
|
||||||
|
logs:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [batch]
|
||||||
|
exporters: [clickhouselogsexporter]
|
||||||
1
deploy/docker/.env
Normal file
1
deploy/docker/.env
Normal file
@@ -0,0 +1 @@
|
|||||||
|
COMPOSE_PROJECT_NAME=signoz
|
||||||
3
deploy/docker/clickhouse-setup/.deprecated
Normal file
3
deploy/docker/clickhouse-setup/.deprecated
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
This data directory is deprecated and will be removed in the future.
|
||||||
|
Please use the migration script under `scripts/volume-migration` to migrate data from bind mounts to Docker volumes.
|
||||||
|
The script also renames the project name to `signoz` and the network name to `signoz-net` (if not already in place).
|
||||||
0
deploy/docker/clickhouse-setup/.gitkeep
Normal file
0
deploy/docker/clickhouse-setup/.gitkeep
Normal file
@@ -1,35 +0,0 @@
|
|||||||
global:
|
|
||||||
resolve_timeout: 1m
|
|
||||||
slack_api_url: 'https://hooks.slack.com/services/xxx'
|
|
||||||
|
|
||||||
route:
|
|
||||||
receiver: 'slack-notifications'
|
|
||||||
|
|
||||||
receivers:
|
|
||||||
- name: 'slack-notifications'
|
|
||||||
slack_configs:
|
|
||||||
- channel: '#alerts'
|
|
||||||
send_resolved: true
|
|
||||||
icon_url: https://avatars3.githubusercontent.com/u/3380462
|
|
||||||
title: |-
|
|
||||||
[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }}
|
|
||||||
{{- if gt (len .CommonLabels) (len .GroupLabels) -}}
|
|
||||||
{{" "}}(
|
|
||||||
{{- with .CommonLabels.Remove .GroupLabels.Names }}
|
|
||||||
{{- range $index, $label := .SortedPairs -}}
|
|
||||||
{{ if $index }}, {{ end }}
|
|
||||||
{{- $label.Name }}="{{ $label.Value -}}"
|
|
||||||
{{- end }}
|
|
||||||
{{- end -}}
|
|
||||||
)
|
|
||||||
{{- end }}
|
|
||||||
text: >-
|
|
||||||
{{ range .Alerts -}}
|
|
||||||
*Alert:* {{ .Annotations.title }}{{ if .Labels.severity }} - `{{ .Labels.severity }}`{{ end }}
|
|
||||||
|
|
||||||
*Description:* {{ .Annotations.description }}
|
|
||||||
|
|
||||||
*Details:*
|
|
||||||
{{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
groups:
|
|
||||||
- name: ExampleCPULoadGroup
|
|
||||||
rules:
|
|
||||||
- alert: HighCpuLoad
|
|
||||||
expr: system_cpu_load_average_1m > 0.1
|
|
||||||
for: 0m
|
|
||||||
labels:
|
|
||||||
severity: warning
|
|
||||||
annotations:
|
|
||||||
summary: High CPU load
|
|
||||||
description: "CPU load is > 0.1\n VALUE = {{ $value }}\n LABELS = {{ $labels }}"
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<clickhouse>
|
|
||||||
<storage_configuration>
|
|
||||||
<disks>
|
|
||||||
<default>
|
|
||||||
<keep_free_space_bytes>10485760</keep_free_space_bytes>
|
|
||||||
</default>
|
|
||||||
<s3>
|
|
||||||
<type>s3</type>
|
|
||||||
<!-- For S3 cold storage,
|
|
||||||
if region is us-east-1, endpoint can be https://<bucket-name>.s3.amazonaws.com
|
|
||||||
if region is not us-east-1, endpoint should be https://<bucket-name>.s3-<region>.amazonaws.com
|
|
||||||
For GCS cold storage,
|
|
||||||
endpoint should be https://storage.googleapis.com/<bucket-name>/data/
|
|
||||||
-->
|
|
||||||
<endpoint>https://BUCKET-NAME.s3-REGION-NAME.amazonaws.com/data/</endpoint>
|
|
||||||
<access_key_id>ACCESS-KEY-ID</access_key_id>
|
|
||||||
<secret_access_key>SECRET-ACCESS-KEY</secret_access_key>
|
|
||||||
<!-- In case of S3, uncomment the below configuration in case you want to read
|
|
||||||
AWS credentials from the Environment variables if they exist. -->
|
|
||||||
<!-- <use_environment_credentials>true</use_environment_credentials> -->
|
|
||||||
<!-- In case of GCS, uncomment the below configuration, since GCS does
|
|
||||||
not support batch deletion and result in error messages in logs. -->
|
|
||||||
<!-- <support_batch_delete>false</support_batch_delete> -->
|
|
||||||
</s3>
|
|
||||||
</disks>
|
|
||||||
<policies>
|
|
||||||
<tiered>
|
|
||||||
<volumes>
|
|
||||||
<default>
|
|
||||||
<disk>default</disk>
|
|
||||||
</default>
|
|
||||||
<s3>
|
|
||||||
<disk>s3</disk>
|
|
||||||
<perform_ttl_move_on_insert>0</perform_ttl_move_on_insert>
|
|
||||||
</s3>
|
|
||||||
</volumes>
|
|
||||||
</tiered>
|
|
||||||
</policies>
|
|
||||||
</storage_configuration>
|
|
||||||
</clickhouse>
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<clickhouse>
|
|
||||||
<!-- See also the files in users.d directory where the settings can be overridden. -->
|
|
||||||
|
|
||||||
<!-- Profiles of settings. -->
|
|
||||||
<profiles>
|
|
||||||
<!-- Default settings. -->
|
|
||||||
<default>
|
|
||||||
<!-- Maximum memory usage for processing single query, in bytes. -->
|
|
||||||
<max_memory_usage>10000000000</max_memory_usage>
|
|
||||||
|
|
||||||
<!-- How to choose between replicas during distributed query processing.
|
|
||||||
random - choose random replica from set of replicas with minimum number of errors
|
|
||||||
nearest_hostname - from set of replicas with minimum number of errors, choose replica
|
|
||||||
with minimum number of different symbols between replica's hostname and local hostname
|
|
||||||
(Hamming distance).
|
|
||||||
in_order - first live replica is chosen in specified order.
|
|
||||||
first_or_random - if first replica one has higher number of errors, pick a random one from replicas with minimum number of errors.
|
|
||||||
-->
|
|
||||||
<load_balancing>random</load_balancing>
|
|
||||||
</default>
|
|
||||||
|
|
||||||
<!-- Profile that allows only read queries. -->
|
|
||||||
<readonly>
|
|
||||||
<readonly>1</readonly>
|
|
||||||
</readonly>
|
|
||||||
</profiles>
|
|
||||||
|
|
||||||
<!-- Users and ACL. -->
|
|
||||||
<users>
|
|
||||||
<!-- If user name was not specified, 'default' user is used. -->
|
|
||||||
<default>
|
|
||||||
<!-- See also the files in users.d directory where the password can be overridden.
|
|
||||||
|
|
||||||
Password could be specified in plaintext or in SHA256 (in hex format).
|
|
||||||
|
|
||||||
If you want to specify password in plaintext (not recommended), place it in 'password' element.
|
|
||||||
Example: <password>qwerty</password>.
|
|
||||||
Password could be empty.
|
|
||||||
|
|
||||||
If you want to specify SHA256, place it in 'password_sha256_hex' element.
|
|
||||||
Example: <password_sha256_hex>65e84be33532fb784c48129675f9eff3a682b27168c0ea744b2cf58ee02337c5</password_sha256_hex>
|
|
||||||
Restrictions of SHA256: impossibility to connect to ClickHouse using MySQL JS client (as of July 2019).
|
|
||||||
|
|
||||||
If you want to specify double SHA1, place it in 'password_double_sha1_hex' element.
|
|
||||||
Example: <password_double_sha1_hex>e395796d6546b1b65db9d665cd43f0e858dd4303</password_double_sha1_hex>
|
|
||||||
|
|
||||||
If you want to specify a previously defined LDAP server (see 'ldap_servers' in the main config) for authentication,
|
|
||||||
place its name in 'server' element inside 'ldap' element.
|
|
||||||
Example: <ldap><server>my_ldap_server</server></ldap>
|
|
||||||
|
|
||||||
If you want to authenticate the user via Kerberos (assuming Kerberos is enabled, see 'kerberos' in the main config),
|
|
||||||
place 'kerberos' element instead of 'password' (and similar) elements.
|
|
||||||
The name part of the canonical principal name of the initiator must match the user name for authentication to succeed.
|
|
||||||
You can also place 'realm' element inside 'kerberos' element to further restrict authentication to only those requests
|
|
||||||
whose initiator's realm matches it.
|
|
||||||
Example: <kerberos />
|
|
||||||
Example: <kerberos><realm>EXAMPLE.COM</realm></kerberos>
|
|
||||||
|
|
||||||
How to generate decent password:
|
|
||||||
Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
|
|
||||||
In first line will be password and in second - corresponding SHA256.
|
|
||||||
|
|
||||||
How to generate double SHA1:
|
|
||||||
Execute: PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'
|
|
||||||
In first line will be password and in second - corresponding double SHA1.
|
|
||||||
-->
|
|
||||||
<password></password>
|
|
||||||
|
|
||||||
<!-- List of networks with open access.
|
|
||||||
|
|
||||||
To open access from everywhere, specify:
|
|
||||||
<ip>::/0</ip>
|
|
||||||
|
|
||||||
To open access only from localhost, specify:
|
|
||||||
<ip>::1</ip>
|
|
||||||
<ip>127.0.0.1</ip>
|
|
||||||
|
|
||||||
Each element of list has one of the following forms:
|
|
||||||
<ip> IP-address or network mask. Examples: 213.180.204.3 or 10.0.0.1/8 or 10.0.0.1/255.255.255.0
|
|
||||||
2a02:6b8::3 or 2a02:6b8::3/64 or 2a02:6b8::3/ffff:ffff:ffff:ffff::.
|
|
||||||
<host> Hostname. Example: server01.clickhouse.com.
|
|
||||||
To check access, DNS query is performed, and all received addresses compared to peer address.
|
|
||||||
<host_regexp> Regular expression for host names. Example, ^server\d\d-\d\d-\d\.clickhouse\.com$
|
|
||||||
To check access, DNS PTR query is performed for peer address and then regexp is applied.
|
|
||||||
Then, for result of PTR query, another DNS query is performed and all received addresses compared to peer address.
|
|
||||||
Strongly recommended that regexp is ends with $
|
|
||||||
All results of DNS requests are cached till server restart.
|
|
||||||
-->
|
|
||||||
<networks>
|
|
||||||
<ip>::/0</ip>
|
|
||||||
</networks>
|
|
||||||
|
|
||||||
<!-- Settings profile for user. -->
|
|
||||||
<profile>default</profile>
|
|
||||||
|
|
||||||
<!-- Quota for user. -->
|
|
||||||
<quota>default</quota>
|
|
||||||
|
|
||||||
<!-- User can create other users and grant rights to them. -->
|
|
||||||
<!-- <access_management>1</access_management> -->
|
|
||||||
</default>
|
|
||||||
</users>
|
|
||||||
|
|
||||||
<!-- Quotas. -->
|
|
||||||
<quotas>
|
|
||||||
<!-- Name of quota. -->
|
|
||||||
<default>
|
|
||||||
<!-- Limits for time interval. You could specify many intervals with different limits. -->
|
|
||||||
<interval>
|
|
||||||
<!-- Length of interval. -->
|
|
||||||
<duration>3600</duration>
|
|
||||||
|
|
||||||
<!-- No limits. Just calculate resource usage for time interval. -->
|
|
||||||
<queries>0</queries>
|
|
||||||
<errors>0</errors>
|
|
||||||
<result_rows>0</result_rows>
|
|
||||||
<read_rows>0</read_rows>
|
|
||||||
<execution_time>0</execution_time>
|
|
||||||
</interval>
|
|
||||||
</default>
|
|
||||||
</quotas>
|
|
||||||
</clickhouse>
|
|
||||||
@@ -1,156 +0,0 @@
|
|||||||
version: "2.4"
|
|
||||||
|
|
||||||
services:
|
|
||||||
zookeeper-1:
|
|
||||||
image: bitnami/zookeeper:3.7.1
|
|
||||||
container_name: signoz-zookeeper-1
|
|
||||||
hostname: zookeeper-1
|
|
||||||
user: root
|
|
||||||
ports:
|
|
||||||
- "2181:2181"
|
|
||||||
- "2888:2888"
|
|
||||||
- "3888:3888"
|
|
||||||
volumes:
|
|
||||||
- ./data/zookeeper-1:/bitnami/zookeeper
|
|
||||||
environment:
|
|
||||||
- ZOO_SERVER_ID=1
|
|
||||||
# - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
|
||||||
- ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
- ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
clickhouse:
|
|
||||||
image: clickhouse/clickhouse-server:24.1.2-alpine
|
|
||||||
container_name: signoz-clickhouse
|
|
||||||
# ports:
|
|
||||||
# - "9000:9000"
|
|
||||||
# - "8123:8123"
|
|
||||||
tty: true
|
|
||||||
volumes:
|
|
||||||
- ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
- ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
- ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
- ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
- ./data/clickhouse/:/var/lib/clickhouse/
|
|
||||||
- ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
restart: on-failure
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
healthcheck:
|
|
||||||
# "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'"
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD",
|
|
||||||
"wget",
|
|
||||||
"--spider",
|
|
||||||
"-q",
|
|
||||||
"0.0.0.0:8123/ping"
|
|
||||||
]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
|
|
||||||
alertmanager:
|
|
||||||
container_name: signoz-alertmanager
|
|
||||||
image: signoz/alertmanager:0.23.5
|
|
||||||
volumes:
|
|
||||||
- ./data/alertmanager:/data
|
|
||||||
depends_on:
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
restart: on-failure
|
|
||||||
command:
|
|
||||||
- --queryService.url=http://query-service:8085
|
|
||||||
- --storage.path=/data
|
|
||||||
|
|
||||||
otel-collector-migrator:
|
|
||||||
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.102.10}
|
|
||||||
container_name: otel-migrator
|
|
||||||
command:
|
|
||||||
- "--dsn=tcp://clickhouse:9000"
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
|
|
||||||
# Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md`
|
|
||||||
otel-collector:
|
|
||||||
container_name: signoz-otel-collector
|
|
||||||
image: signoz/signoz-otel-collector:0.102.10
|
|
||||||
command:
|
|
||||||
[
|
|
||||||
"--config=/etc/otel-collector-config.yaml",
|
|
||||||
"--manager-config=/etc/manager-config.yaml",
|
|
||||||
"--copy-path=/var/tmp/collector-config.yaml",
|
|
||||||
"--feature-gates=-pkg.translator.prometheus.NormalizeName"
|
|
||||||
]
|
|
||||||
# user: root # required for reading docker container logs
|
|
||||||
volumes:
|
|
||||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
|
||||||
- ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
|
||||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
||||||
- /:/hostfs:ro
|
|
||||||
environment:
|
|
||||||
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
|
||||||
ports:
|
|
||||||
# - "1777:1777" # pprof extension
|
|
||||||
- "4317:4317" # OTLP gRPC receiver
|
|
||||||
- "4318:4318" # OTLP HTTP receiver
|
|
||||||
# - "8888:8888" # OtelCollector internal metrics
|
|
||||||
# - "8889:8889" # signoz spanmetrics exposed by the agent
|
|
||||||
# - "9411:9411" # Zipkin port
|
|
||||||
# - "13133:13133" # health check extension
|
|
||||||
# - "14250:14250" # Jaeger gRPC
|
|
||||||
# - "14268:14268" # Jaeger thrift HTTP
|
|
||||||
# - "55678:55678" # OpenCensus receiver
|
|
||||||
# - "55679:55679" # zPages extension
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
|
|
||||||
logspout:
|
|
||||||
image: "gliderlabs/logspout:v3.2.14"
|
|
||||||
container_name: signoz-logspout
|
|
||||||
volumes:
|
|
||||||
- /etc/hostname:/etc/host_hostname:ro
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
command: syslog+tcp://otel-collector:2255
|
|
||||||
depends_on:
|
|
||||||
- otel-collector
|
|
||||||
restart: on-failure
|
|
||||||
|
|
||||||
hotrod:
|
|
||||||
image: jaegertracing/example-hotrod:1.30
|
|
||||||
container_name: hotrod
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
command: [ "all" ]
|
|
||||||
environment:
|
|
||||||
- JAEGER_ENDPOINT=http://otel-collector:14268/api/traces
|
|
||||||
|
|
||||||
load-hotrod:
|
|
||||||
image: "signoz/locust:1.2.3"
|
|
||||||
container_name: load-hotrod
|
|
||||||
hostname: load-hotrod
|
|
||||||
environment:
|
|
||||||
ATTACKED_HOST: http://hotrod:8080
|
|
||||||
LOCUST_MODE: standalone
|
|
||||||
NO_PROXY: standalone
|
|
||||||
TASK_DELAY_FROM: 5
|
|
||||||
TASK_DELAY_TO: 30
|
|
||||||
QUIET_MODE: "${QUIET_MODE:-false}"
|
|
||||||
LOCUST_OPTS: "--headless -u 10 -r 1"
|
|
||||||
volumes:
|
|
||||||
- ../common/locust-scripts:/locust
|
|
||||||
@@ -1,67 +0,0 @@
|
|||||||
version: "2.4"
|
|
||||||
|
|
||||||
services:
|
|
||||||
query-service:
|
|
||||||
hostname: query-service
|
|
||||||
build:
|
|
||||||
context: "../../../"
|
|
||||||
dockerfile: "./pkg/query-service/Dockerfile"
|
|
||||||
args:
|
|
||||||
LDFLAGS: ""
|
|
||||||
TARGETPLATFORM: "${GOOS}/${GOARCH}"
|
|
||||||
container_name: signoz-query-service
|
|
||||||
environment:
|
|
||||||
- ClickHouseUrl=tcp://clickhouse:9000
|
|
||||||
- ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/
|
|
||||||
- SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db
|
|
||||||
- DASHBOARDS_PATH=/root/config/dashboards
|
|
||||||
- STORAGE=clickhouse
|
|
||||||
- GODEBUG=netdns=go
|
|
||||||
- TELEMETRY_ENABLED=true
|
|
||||||
volumes:
|
|
||||||
- ./prometheus.yml:/root/config/prometheus.yml
|
|
||||||
- ../dashboards:/root/config/dashboards
|
|
||||||
- ./data/signoz/:/var/lib/signoz/
|
|
||||||
command:
|
|
||||||
[
|
|
||||||
"-config=/root/config/prometheus.yml",
|
|
||||||
"--use-logs-new-schema=true"
|
|
||||||
]
|
|
||||||
ports:
|
|
||||||
- "6060:6060"
|
|
||||||
- "8080:8080"
|
|
||||||
restart: on-failure
|
|
||||||
healthcheck:
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD",
|
|
||||||
"wget",
|
|
||||||
"--spider",
|
|
||||||
"-q",
|
|
||||||
"localhost:8080/api/v1/health"
|
|
||||||
]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
|
|
||||||
frontend:
|
|
||||||
build:
|
|
||||||
context: "../../../frontend"
|
|
||||||
dockerfile: "./Dockerfile"
|
|
||||||
args:
|
|
||||||
TARGETOS: "${GOOS}"
|
|
||||||
TARGETPLATFORM: "${GOARCH}"
|
|
||||||
container_name: signoz-frontend
|
|
||||||
environment:
|
|
||||||
- FRONTEND_API_ENDPOINT=http://query-service:8080
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
- alertmanager
|
|
||||||
- query-service
|
|
||||||
ports:
|
|
||||||
- "3301:3301"
|
|
||||||
volumes:
|
|
||||||
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
|
|
||||||
@@ -1,308 +0,0 @@
|
|||||||
version: "2.4"
|
|
||||||
|
|
||||||
x-clickhouse-defaults: &clickhouse-defaults
|
|
||||||
restart: on-failure
|
|
||||||
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
|
|
||||||
image: clickhouse/clickhouse-server:24.1.2-alpine
|
|
||||||
tty: true
|
|
||||||
depends_on:
|
|
||||||
- zookeeper-1
|
|
||||||
# - zookeeper-2
|
|
||||||
# - zookeeper-3
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
healthcheck:
|
|
||||||
# "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'"
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD",
|
|
||||||
"wget",
|
|
||||||
"--spider",
|
|
||||||
"-q",
|
|
||||||
"0.0.0.0:8123/ping"
|
|
||||||
]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
ulimits:
|
|
||||||
nproc: 65535
|
|
||||||
nofile:
|
|
||||||
soft: 262144
|
|
||||||
hard: 262144
|
|
||||||
|
|
||||||
x-db-depend: &db-depend
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
zookeeper-1:
|
|
||||||
image: bitnami/zookeeper:3.7.1
|
|
||||||
container_name: signoz-zookeeper-1
|
|
||||||
hostname: zookeeper-1
|
|
||||||
user: root
|
|
||||||
ports:
|
|
||||||
- "2181:2181"
|
|
||||||
- "2888:2888"
|
|
||||||
- "3888:3888"
|
|
||||||
volumes:
|
|
||||||
- ./data/zookeeper-1:/bitnami/zookeeper
|
|
||||||
environment:
|
|
||||||
- ZOO_SERVER_ID=1
|
|
||||||
# - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
|
||||||
- ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
- ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
# zookeeper-2:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# container_name: signoz-zookeeper-2
|
|
||||||
# hostname: zookeeper-2
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2182:2181"
|
|
||||||
# - "2889:2888"
|
|
||||||
# - "3889:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-2:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=2
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
# zookeeper-3:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# container_name: signoz-zookeeper-3
|
|
||||||
# hostname: zookeeper-3
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2183:2181"
|
|
||||||
# - "2890:2888"
|
|
||||||
# - "3890:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-3:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=3
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
clickhouse:
|
|
||||||
<<: *clickhouse-defaults
|
|
||||||
container_name: signoz-clickhouse
|
|
||||||
hostname: clickhouse
|
|
||||||
ports:
|
|
||||||
- "9000:9000"
|
|
||||||
- "8123:8123"
|
|
||||||
- "9181:9181"
|
|
||||||
volumes:
|
|
||||||
- ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
- ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
- ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
- ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
- ./data/clickhouse/:/var/lib/clickhouse/
|
|
||||||
- ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
|
|
||||||
# clickhouse-2:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# container_name: signoz-clickhouse-2
|
|
||||||
# hostname: clickhouse-2
|
|
||||||
# ports:
|
|
||||||
# - "9001:9000"
|
|
||||||
# - "8124:8123"
|
|
||||||
# - "9182:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-2/:/var/lib/clickhouse/
|
|
||||||
# - ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
|
|
||||||
|
|
||||||
# clickhouse-3:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# container_name: signoz-clickhouse-3
|
|
||||||
# hostname: clickhouse-3
|
|
||||||
# ports:
|
|
||||||
# - "9002:9000"
|
|
||||||
# - "8125:8123"
|
|
||||||
# - "9183:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-3/:/var/lib/clickhouse/
|
|
||||||
# - ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
|
|
||||||
alertmanager:
|
|
||||||
image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.5}
|
|
||||||
container_name: signoz-alertmanager
|
|
||||||
volumes:
|
|
||||||
- ./data/alertmanager:/data
|
|
||||||
depends_on:
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
restart: on-failure
|
|
||||||
command:
|
|
||||||
- --queryService.url=http://query-service:8085
|
|
||||||
- --storage.path=/data
|
|
||||||
|
|
||||||
# Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md`
|
|
||||||
|
|
||||||
query-service:
|
|
||||||
image: signoz/query-service:${DOCKER_TAG:-0.55.0}
|
|
||||||
container_name: signoz-query-service
|
|
||||||
command:
|
|
||||||
[
|
|
||||||
"-config=/root/config/prometheus.yml",
|
|
||||||
"-gateway-url=https://api.staging.signoz.cloud",
|
|
||||||
"--use-logs-new-schema=true"
|
|
||||||
]
|
|
||||||
# ports:
|
|
||||||
# - "6060:6060" # pprof port
|
|
||||||
# - "8080:8080" # query-service port
|
|
||||||
volumes:
|
|
||||||
- ./prometheus.yml:/root/config/prometheus.yml
|
|
||||||
- ../dashboards:/root/config/dashboards
|
|
||||||
- ./data/signoz/:/var/lib/signoz/
|
|
||||||
environment:
|
|
||||||
- ClickHouseUrl=tcp://clickhouse:9000
|
|
||||||
- ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/
|
|
||||||
- SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db
|
|
||||||
- DASHBOARDS_PATH=/root/config/dashboards
|
|
||||||
- STORAGE=clickhouse
|
|
||||||
- GODEBUG=netdns=go
|
|
||||||
- TELEMETRY_ENABLED=true
|
|
||||||
- DEPLOYMENT_TYPE=docker-standalone-amd
|
|
||||||
restart: on-failure
|
|
||||||
healthcheck:
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD",
|
|
||||||
"wget",
|
|
||||||
"--spider",
|
|
||||||
"-q",
|
|
||||||
"localhost:8080/api/v1/health"
|
|
||||||
]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
<<: *db-depend
|
|
||||||
|
|
||||||
frontend:
|
|
||||||
image: signoz/frontend:${DOCKER_TAG:-0.55.0}
|
|
||||||
container_name: signoz-frontend
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
- alertmanager
|
|
||||||
- query-service
|
|
||||||
ports:
|
|
||||||
- "3301:3301"
|
|
||||||
volumes:
|
|
||||||
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
|
|
||||||
|
|
||||||
otel-collector-migrator:
|
|
||||||
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.102.10}
|
|
||||||
container_name: otel-migrator
|
|
||||||
command:
|
|
||||||
- "--dsn=tcp://clickhouse:9000"
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
|
|
||||||
|
|
||||||
otel-collector:
|
|
||||||
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.102.10}
|
|
||||||
container_name: signoz-otel-collector
|
|
||||||
command:
|
|
||||||
[
|
|
||||||
"--config=/etc/otel-collector-config.yaml",
|
|
||||||
"--manager-config=/etc/manager-config.yaml",
|
|
||||||
"--copy-path=/var/tmp/collector-config.yaml",
|
|
||||||
"--feature-gates=-pkg.translator.prometheus.NormalizeName"
|
|
||||||
]
|
|
||||||
user: root # required for reading docker container logs
|
|
||||||
volumes:
|
|
||||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
|
||||||
- ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
|
||||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
||||||
- /:/hostfs:ro
|
|
||||||
environment:
|
|
||||||
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
|
||||||
- DOCKER_MULTI_NODE_CLUSTER=false
|
|
||||||
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
|
||||||
ports:
|
|
||||||
# - "1777:1777" # pprof extension
|
|
||||||
- "4317:4317" # OTLP gRPC receiver
|
|
||||||
- "4318:4318" # OTLP HTTP receiver
|
|
||||||
# - "8888:8888" # OtelCollector internal metrics
|
|
||||||
# - "8889:8889" # signoz spanmetrics exposed by the agent
|
|
||||||
# - "9411:9411" # Zipkin port
|
|
||||||
# - "13133:13133" # health check extension
|
|
||||||
# - "14250:14250" # Jaeger gRPC
|
|
||||||
# - "14268:14268" # Jaeger thrift HTTP
|
|
||||||
# - "55678:55678" # OpenCensus receiver
|
|
||||||
# - "55679:55679" # zPages extension
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
|
|
||||||
logspout:
|
|
||||||
image: "gliderlabs/logspout:v3.2.14"
|
|
||||||
container_name: signoz-logspout
|
|
||||||
volumes:
|
|
||||||
- /etc/hostname:/etc/host_hostname:ro
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
command: syslog+tcp://otel-collector:2255
|
|
||||||
depends_on:
|
|
||||||
- otel-collector
|
|
||||||
restart: on-failure
|
|
||||||
|
|
||||||
hotrod:
|
|
||||||
image: jaegertracing/example-hotrod:1.30
|
|
||||||
container_name: hotrod
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
command: [ "all" ]
|
|
||||||
environment:
|
|
||||||
- JAEGER_ENDPOINT=http://otel-collector:14268/api/traces
|
|
||||||
|
|
||||||
load-hotrod:
|
|
||||||
image: "signoz/locust:1.2.3"
|
|
||||||
container_name: load-hotrod
|
|
||||||
hostname: load-hotrod
|
|
||||||
environment:
|
|
||||||
ATTACKED_HOST: http://hotrod:8080
|
|
||||||
LOCUST_MODE: standalone
|
|
||||||
NO_PROXY: standalone
|
|
||||||
TASK_DELAY_FROM: 5
|
|
||||||
TASK_DELAY_TO: 30
|
|
||||||
QUIET_MODE: "${QUIET_MODE:-false}"
|
|
||||||
LOCUST_OPTS: "--headless -u 10 -r 1"
|
|
||||||
volumes:
|
|
||||||
- ../common/locust-scripts:/locust
|
|
||||||
@@ -1,307 +0,0 @@
|
|||||||
version: "2.4"
|
|
||||||
|
|
||||||
x-clickhouse-defaults: &clickhouse-defaults
|
|
||||||
restart: on-failure
|
|
||||||
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
|
|
||||||
image: clickhouse/clickhouse-server:24.1.2-alpine
|
|
||||||
tty: true
|
|
||||||
depends_on:
|
|
||||||
- zookeeper-1
|
|
||||||
# - zookeeper-2
|
|
||||||
# - zookeeper-3
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
healthcheck:
|
|
||||||
# "clickhouse", "client", "-u ${CLICKHOUSE_USER}", "--password ${CLICKHOUSE_PASSWORD}", "-q 'SELECT 1'"
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD",
|
|
||||||
"wget",
|
|
||||||
"--spider",
|
|
||||||
"-q",
|
|
||||||
"0.0.0.0:8123/ping"
|
|
||||||
]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
ulimits:
|
|
||||||
nproc: 65535
|
|
||||||
nofile:
|
|
||||||
soft: 262144
|
|
||||||
hard: 262144
|
|
||||||
|
|
||||||
x-db-depend: &db-depend
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
|
|
||||||
services:
|
|
||||||
|
|
||||||
zookeeper-1:
|
|
||||||
image: bitnami/zookeeper:3.7.1
|
|
||||||
container_name: signoz-zookeeper-1
|
|
||||||
hostname: zookeeper-1
|
|
||||||
user: root
|
|
||||||
ports:
|
|
||||||
- "2181:2181"
|
|
||||||
- "2888:2888"
|
|
||||||
- "3888:3888"
|
|
||||||
volumes:
|
|
||||||
- ./data/zookeeper-1:/bitnami/zookeeper
|
|
||||||
environment:
|
|
||||||
- ZOO_SERVER_ID=1
|
|
||||||
# - ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
|
||||||
- ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
- ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
# zookeeper-2:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# container_name: signoz-zookeeper-2
|
|
||||||
# hostname: zookeeper-2
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2182:2181"
|
|
||||||
# - "2889:2888"
|
|
||||||
# - "3889:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-2:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=2
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
# zookeeper-3:
|
|
||||||
# image: bitnami/zookeeper:3.7.0
|
|
||||||
# container_name: signoz-zookeeper-3
|
|
||||||
# hostname: zookeeper-3
|
|
||||||
# user: root
|
|
||||||
# ports:
|
|
||||||
# - "2183:2181"
|
|
||||||
# - "2890:2888"
|
|
||||||
# - "3890:3888"
|
|
||||||
# volumes:
|
|
||||||
# - ./data/zookeeper-3:/bitnami/zookeeper
|
|
||||||
# environment:
|
|
||||||
# - ZOO_SERVER_ID=3
|
|
||||||
# - ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
|
||||||
# - ALLOW_ANONYMOUS_LOGIN=yes
|
|
||||||
# - ZOO_AUTOPURGE_INTERVAL=1
|
|
||||||
|
|
||||||
clickhouse:
|
|
||||||
<<: *clickhouse-defaults
|
|
||||||
container_name: signoz-clickhouse
|
|
||||||
hostname: clickhouse
|
|
||||||
ports:
|
|
||||||
- "9000:9000"
|
|
||||||
- "8123:8123"
|
|
||||||
- "9181:9181"
|
|
||||||
volumes:
|
|
||||||
- ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
- ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
- ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
- ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
- ./data/clickhouse/:/var/lib/clickhouse/
|
|
||||||
- ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
|
|
||||||
# clickhouse-2:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# container_name: signoz-clickhouse-2
|
|
||||||
# hostname: clickhouse-2
|
|
||||||
# ports:
|
|
||||||
# - "9001:9000"
|
|
||||||
# - "8124:8123"
|
|
||||||
# - "9182:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-2/:/var/lib/clickhouse/
|
|
||||||
# - ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
|
|
||||||
|
|
||||||
# clickhouse-3:
|
|
||||||
# <<: *clickhouse-defaults
|
|
||||||
# container_name: signoz-clickhouse-3
|
|
||||||
# hostname: clickhouse-3
|
|
||||||
# ports:
|
|
||||||
# - "9002:9000"
|
|
||||||
# - "8125:8123"
|
|
||||||
# - "9183:9181"
|
|
||||||
# volumes:
|
|
||||||
# - ./clickhouse-config.xml:/etc/clickhouse-server/config.xml
|
|
||||||
# - ./clickhouse-users.xml:/etc/clickhouse-server/users.xml
|
|
||||||
# - ./custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
|
||||||
# - ./clickhouse-cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
|
||||||
# # - ./clickhouse-storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
|
||||||
# - ./data/clickhouse-3/:/var/lib/clickhouse/
|
|
||||||
# - ./user_scripts:/var/lib/clickhouse/user_scripts/
|
|
||||||
|
|
||||||
alertmanager:
|
|
||||||
image: signoz/alertmanager:${ALERTMANAGER_TAG:-0.23.5}
|
|
||||||
container_name: signoz-alertmanager
|
|
||||||
volumes:
|
|
||||||
- ./data/alertmanager:/data
|
|
||||||
depends_on:
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
restart: on-failure
|
|
||||||
command:
|
|
||||||
- --queryService.url=http://query-service:8085
|
|
||||||
- --storage.path=/data
|
|
||||||
|
|
||||||
# Notes for Maintainers/Contributors who will change Line Numbers of Frontend & Query-Section. Please Update Line Numbers in `./scripts/commentLinesForSetup.sh` & `./CONTRIBUTING.md`
|
|
||||||
|
|
||||||
query-service:
|
|
||||||
image: signoz/query-service:${DOCKER_TAG:-0.55.0}
|
|
||||||
container_name: signoz-query-service
|
|
||||||
command:
|
|
||||||
[
|
|
||||||
"-config=/root/config/prometheus.yml",
|
|
||||||
"--use-logs-new-schema=true"
|
|
||||||
]
|
|
||||||
# ports:
|
|
||||||
# - "6060:6060" # pprof port
|
|
||||||
# - "8080:8080" # query-service port
|
|
||||||
volumes:
|
|
||||||
- ./prometheus.yml:/root/config/prometheus.yml
|
|
||||||
- ../dashboards:/root/config/dashboards
|
|
||||||
- ./data/signoz/:/var/lib/signoz/
|
|
||||||
environment:
|
|
||||||
- ClickHouseUrl=tcp://clickhouse:9000
|
|
||||||
- ALERTMANAGER_API_PREFIX=http://alertmanager:9093/api/
|
|
||||||
- SIGNOZ_LOCAL_DB_PATH=/var/lib/signoz/signoz.db
|
|
||||||
- DASHBOARDS_PATH=/root/config/dashboards
|
|
||||||
- STORAGE=clickhouse
|
|
||||||
- GODEBUG=netdns=go
|
|
||||||
- TELEMETRY_ENABLED=true
|
|
||||||
- DEPLOYMENT_TYPE=docker-standalone-amd
|
|
||||||
restart: on-failure
|
|
||||||
healthcheck:
|
|
||||||
test:
|
|
||||||
[
|
|
||||||
"CMD",
|
|
||||||
"wget",
|
|
||||||
"--spider",
|
|
||||||
"-q",
|
|
||||||
"localhost:8080/api/v1/health"
|
|
||||||
]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 3
|
|
||||||
<<: *db-depend
|
|
||||||
|
|
||||||
frontend:
|
|
||||||
image: signoz/frontend:${DOCKER_TAG:-0.55.0}
|
|
||||||
container_name: signoz-frontend
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
- alertmanager
|
|
||||||
- query-service
|
|
||||||
ports:
|
|
||||||
- "3301:3301"
|
|
||||||
volumes:
|
|
||||||
- ../common/nginx-config.conf:/etc/nginx/conf.d/default.conf
|
|
||||||
|
|
||||||
otel-collector-migrator:
|
|
||||||
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-0.102.10}
|
|
||||||
container_name: otel-migrator
|
|
||||||
command:
|
|
||||||
- "--dsn=tcp://clickhouse:9000"
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
# clickhouse-2:
|
|
||||||
# condition: service_healthy
|
|
||||||
# clickhouse-3:
|
|
||||||
# condition: service_healthy
|
|
||||||
|
|
||||||
|
|
||||||
otel-collector:
|
|
||||||
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-0.102.10}
|
|
||||||
container_name: signoz-otel-collector
|
|
||||||
command:
|
|
||||||
[
|
|
||||||
"--config=/etc/otel-collector-config.yaml",
|
|
||||||
"--manager-config=/etc/manager-config.yaml",
|
|
||||||
"--copy-path=/var/tmp/collector-config.yaml",
|
|
||||||
"--feature-gates=-pkg.translator.prometheus.NormalizeName"
|
|
||||||
]
|
|
||||||
user: root # required for reading docker container logs
|
|
||||||
volumes:
|
|
||||||
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
|
||||||
- ./otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
|
||||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
||||||
- /:/hostfs:ro
|
|
||||||
environment:
|
|
||||||
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
|
||||||
- DOCKER_MULTI_NODE_CLUSTER=false
|
|
||||||
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
|
||||||
ports:
|
|
||||||
# - "1777:1777" # pprof extension
|
|
||||||
- "4317:4317" # OTLP gRPC receiver
|
|
||||||
- "4318:4318" # OTLP HTTP receiver
|
|
||||||
# - "8888:8888" # OtelCollector internal metrics
|
|
||||||
# - "8889:8889" # signoz spanmetrics exposed by the agent
|
|
||||||
# - "9411:9411" # Zipkin port
|
|
||||||
# - "13133:13133" # health check extension
|
|
||||||
# - "14250:14250" # Jaeger gRPC
|
|
||||||
# - "14268:14268" # Jaeger thrift HTTP
|
|
||||||
# - "55678:55678" # OpenCensus receiver
|
|
||||||
# - "55679:55679" # zPages extension
|
|
||||||
restart: on-failure
|
|
||||||
depends_on:
|
|
||||||
clickhouse:
|
|
||||||
condition: service_healthy
|
|
||||||
otel-collector-migrator:
|
|
||||||
condition: service_completed_successfully
|
|
||||||
query-service:
|
|
||||||
condition: service_healthy
|
|
||||||
|
|
||||||
logspout:
|
|
||||||
image: "gliderlabs/logspout:v3.2.14"
|
|
||||||
container_name: signoz-logspout
|
|
||||||
volumes:
|
|
||||||
- /etc/hostname:/etc/host_hostname:ro
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
|
||||||
command: syslog+tcp://otel-collector:2255
|
|
||||||
depends_on:
|
|
||||||
- otel-collector
|
|
||||||
restart: on-failure
|
|
||||||
|
|
||||||
hotrod:
|
|
||||||
image: jaegertracing/example-hotrod:1.30
|
|
||||||
container_name: hotrod
|
|
||||||
logging:
|
|
||||||
options:
|
|
||||||
max-size: 50m
|
|
||||||
max-file: "3"
|
|
||||||
command: [ "all" ]
|
|
||||||
environment:
|
|
||||||
- JAEGER_ENDPOINT=http://otel-collector:14268/api/traces
|
|
||||||
|
|
||||||
load-hotrod:
|
|
||||||
image: "signoz/locust:1.2.3"
|
|
||||||
container_name: load-hotrod
|
|
||||||
hostname: load-hotrod
|
|
||||||
environment:
|
|
||||||
ATTACKED_HOST: http://hotrod:8080
|
|
||||||
LOCUST_MODE: standalone
|
|
||||||
NO_PROXY: standalone
|
|
||||||
TASK_DELAY_FROM: 5
|
|
||||||
TASK_DELAY_TO: 30
|
|
||||||
QUIET_MODE: "${QUIET_MODE:-false}"
|
|
||||||
LOCUST_OPTS: "--headless -u 10 -r 1"
|
|
||||||
volumes:
|
|
||||||
- ../common/locust-scripts:/locust
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
<clickhouse>
|
|
||||||
<logger>
|
|
||||||
<!-- Possible levels [1]:
|
|
||||||
|
|
||||||
- none (turns off logging)
|
|
||||||
- fatal
|
|
||||||
- critical
|
|
||||||
- error
|
|
||||||
- warning
|
|
||||||
- notice
|
|
||||||
- information
|
|
||||||
- debug
|
|
||||||
- trace
|
|
||||||
|
|
||||||
[1]: https://github.com/pocoproject/poco/blob/poco-1.9.4-release/Foundation/include/Poco/Logger.h#L105-L114
|
|
||||||
-->
|
|
||||||
<level>information</level>
|
|
||||||
<log>/var/log/clickhouse-keeper/clickhouse-keeper.log</log>
|
|
||||||
<errorlog>/var/log/clickhouse-keeper/clickhouse-keeper.err.log</errorlog>
|
|
||||||
<!-- Rotation policy
|
|
||||||
See https://github.com/pocoproject/poco/blob/poco-1.9.4-release/Foundation/include/Poco/FileChannel.h#L54-L85
|
|
||||||
-->
|
|
||||||
<size>1000M</size>
|
|
||||||
<count>10</count>
|
|
||||||
<!-- <console>1</console> --> <!-- Default behavior is autodetection (log to console if not daemon mode and is tty) -->
|
|
||||||
</logger>
|
|
||||||
|
|
||||||
<listen_host>0.0.0.0</listen_host>
|
|
||||||
<max_connections>4096</max_connections>
|
|
||||||
|
|
||||||
<keeper_server>
|
|
||||||
<tcp_port>9181</tcp_port>
|
|
||||||
|
|
||||||
<!-- Must be unique among all keeper serves -->
|
|
||||||
<server_id>1</server_id>
|
|
||||||
|
|
||||||
<log_storage_path>/var/lib/clickhouse/coordination/logs</log_storage_path>
|
|
||||||
<snapshot_storage_path>/var/lib/clickhouse/coordination/snapshots</snapshot_storage_path>
|
|
||||||
|
|
||||||
<coordination_settings>
|
|
||||||
<operation_timeout_ms>10000</operation_timeout_ms>
|
|
||||||
<min_session_timeout_ms>10000</min_session_timeout_ms>
|
|
||||||
<session_timeout_ms>100000</session_timeout_ms>
|
|
||||||
<raft_logs_level>information</raft_logs_level>
|
|
||||||
<compress_logs>false</compress_logs>
|
|
||||||
<!-- All settings listed in https://github.com/ClickHouse/ClickHouse/blob/master/src/Coordination/CoordinationSettings.h -->
|
|
||||||
</coordination_settings>
|
|
||||||
|
|
||||||
<!-- enable sanity hostname checks for cluster configuration (e.g. if localhost is used with remote endpoints) -->
|
|
||||||
<hostname_checks_enabled>true</hostname_checks_enabled>
|
|
||||||
<raft_configuration>
|
|
||||||
<server>
|
|
||||||
<id>1</id>
|
|
||||||
|
|
||||||
<!-- Internal port and hostname -->
|
|
||||||
<hostname>clickhouses-keeper-1</hostname>
|
|
||||||
<port>9234</port>
|
|
||||||
</server>
|
|
||||||
|
|
||||||
<!-- Add more servers here -->
|
|
||||||
|
|
||||||
</raft_configuration>
|
|
||||||
</keeper_server>
|
|
||||||
</clickhouse>
|
|
||||||
@@ -1,190 +0,0 @@
|
|||||||
receivers:
|
|
||||||
tcplog/docker:
|
|
||||||
listen_address: "0.0.0.0:2255"
|
|
||||||
operators:
|
|
||||||
- type: regex_parser
|
|
||||||
regex: '^<([0-9]+)>[0-9]+ (?P<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?) (?P<container_id>\S+) (?P<container_name>\S+) [0-9]+ - -( (?P<body>.*))?'
|
|
||||||
timestamp:
|
|
||||||
parse_from: attributes.timestamp
|
|
||||||
layout: '%Y-%m-%dT%H:%M:%S.%LZ'
|
|
||||||
- type: move
|
|
||||||
from: attributes["body"]
|
|
||||||
to: body
|
|
||||||
- type: remove
|
|
||||||
field: attributes.timestamp
|
|
||||||
# please remove names from below if you want to collect logs from them
|
|
||||||
- type: filter
|
|
||||||
id: signoz_logs_filter
|
|
||||||
expr: 'attributes.container_name matches "^signoz-(logspout|frontend|alertmanager|query-service|otel-collector|clickhouse|zookeeper)"'
|
|
||||||
opencensus:
|
|
||||||
endpoint: 0.0.0.0:55678
|
|
||||||
otlp:
|
|
||||||
protocols:
|
|
||||||
grpc:
|
|
||||||
endpoint: 0.0.0.0:4317
|
|
||||||
http:
|
|
||||||
endpoint: 0.0.0.0:4318
|
|
||||||
jaeger:
|
|
||||||
protocols:
|
|
||||||
grpc:
|
|
||||||
endpoint: 0.0.0.0:14250
|
|
||||||
thrift_http:
|
|
||||||
endpoint: 0.0.0.0:14268
|
|
||||||
# thrift_compact:
|
|
||||||
# endpoint: 0.0.0.0:6831
|
|
||||||
# thrift_binary:
|
|
||||||
# endpoint: 0.0.0.0:6832
|
|
||||||
hostmetrics:
|
|
||||||
collection_interval: 30s
|
|
||||||
root_path: /hostfs
|
|
||||||
scrapers:
|
|
||||||
cpu: {}
|
|
||||||
load: {}
|
|
||||||
memory: {}
|
|
||||||
disk: {}
|
|
||||||
filesystem: {}
|
|
||||||
network: {}
|
|
||||||
prometheus:
|
|
||||||
config:
|
|
||||||
global:
|
|
||||||
scrape_interval: 60s
|
|
||||||
scrape_configs:
|
|
||||||
# otel-collector internal metrics
|
|
||||||
- job_name: otel-collector
|
|
||||||
static_configs:
|
|
||||||
- targets:
|
|
||||||
- localhost:8888
|
|
||||||
labels:
|
|
||||||
job_name: otel-collector
|
|
||||||
|
|
||||||
|
|
||||||
processors:
|
|
||||||
batch:
|
|
||||||
send_batch_size: 10000
|
|
||||||
send_batch_max_size: 11000
|
|
||||||
timeout: 10s
|
|
||||||
signozspanmetrics/cumulative:
|
|
||||||
metrics_exporter: clickhousemetricswrite
|
|
||||||
metrics_flush_interval: 60s
|
|
||||||
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
|
|
||||||
dimensions_cache_size: 100000
|
|
||||||
dimensions:
|
|
||||||
- name: service.namespace
|
|
||||||
default: default
|
|
||||||
- name: deployment.environment
|
|
||||||
default: default
|
|
||||||
# This is added to ensure the uniqueness of the timeseries
|
|
||||||
# Otherwise, identical timeseries produced by multiple replicas of
|
|
||||||
# collectors result in incorrect APM metrics
|
|
||||||
- name: signoz.collector.id
|
|
||||||
- name: service.version
|
|
||||||
- name: browser.platform
|
|
||||||
- name: browser.mobile
|
|
||||||
- name: k8s.cluster.name
|
|
||||||
- name: k8s.node.name
|
|
||||||
- name: k8s.namespace.name
|
|
||||||
- name: host.name
|
|
||||||
- name: host.type
|
|
||||||
- name: container.name
|
|
||||||
# memory_limiter:
|
|
||||||
# # 80% of maximum memory up to 2G
|
|
||||||
# limit_mib: 1500
|
|
||||||
# # 25% of limit up to 2G
|
|
||||||
# spike_limit_mib: 512
|
|
||||||
# check_interval: 5s
|
|
||||||
#
|
|
||||||
# # 50% of the maximum memory
|
|
||||||
# limit_percentage: 50
|
|
||||||
# # 20% of max memory usage spike expected
|
|
||||||
# spike_limit_percentage: 20
|
|
||||||
# queued_retry:
|
|
||||||
# num_workers: 4
|
|
||||||
# queue_size: 100
|
|
||||||
# retry_on_failure: true
|
|
||||||
resourcedetection:
|
|
||||||
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
|
||||||
detectors: [env, system] # include ec2 for AWS, gcp for GCP and azure for Azure.
|
|
||||||
timeout: 2s
|
|
||||||
signozspanmetrics/delta:
|
|
||||||
metrics_exporter: clickhousemetricswrite
|
|
||||||
metrics_flush_interval: 60s
|
|
||||||
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
|
|
||||||
dimensions_cache_size: 100000
|
|
||||||
aggregation_temporality: AGGREGATION_TEMPORALITY_DELTA
|
|
||||||
enable_exp_histogram: true
|
|
||||||
dimensions:
|
|
||||||
- name: service.namespace
|
|
||||||
default: default
|
|
||||||
- name: deployment.environment
|
|
||||||
default: default
|
|
||||||
# This is added to ensure the uniqueness of the timeseries
|
|
||||||
# Otherwise, identical timeseries produced by multiple replicas of
|
|
||||||
# collectors result in incorrect APM metrics
|
|
||||||
- name: signoz.collector.id
|
|
||||||
- name: service.version
|
|
||||||
- name: browser.platform
|
|
||||||
- name: browser.mobile
|
|
||||||
- name: k8s.cluster.name
|
|
||||||
- name: k8s.node.name
|
|
||||||
- name: k8s.namespace.name
|
|
||||||
- name: host.name
|
|
||||||
- name: host.type
|
|
||||||
- name: container.name
|
|
||||||
|
|
||||||
extensions:
|
|
||||||
health_check:
|
|
||||||
endpoint: 0.0.0.0:13133
|
|
||||||
zpages:
|
|
||||||
endpoint: 0.0.0.0:55679
|
|
||||||
pprof:
|
|
||||||
endpoint: 0.0.0.0:1777
|
|
||||||
|
|
||||||
exporters:
|
|
||||||
clickhousetraces:
|
|
||||||
datasource: tcp://clickhouse:9000/signoz_traces
|
|
||||||
docker_multi_node_cluster: ${DOCKER_MULTI_NODE_CLUSTER}
|
|
||||||
low_cardinal_exception_grouping: ${LOW_CARDINAL_EXCEPTION_GROUPING}
|
|
||||||
clickhousemetricswrite:
|
|
||||||
endpoint: tcp://clickhouse:9000/signoz_metrics
|
|
||||||
resource_to_telemetry_conversion:
|
|
||||||
enabled: true
|
|
||||||
clickhousemetricswrite/prometheus:
|
|
||||||
endpoint: tcp://clickhouse:9000/signoz_metrics
|
|
||||||
clickhouselogsexporter:
|
|
||||||
dsn: tcp://clickhouse:9000/signoz_logs
|
|
||||||
docker_multi_node_cluster: ${DOCKER_MULTI_NODE_CLUSTER}
|
|
||||||
timeout: 10s
|
|
||||||
use_new_schema: true
|
|
||||||
# logging: {}
|
|
||||||
|
|
||||||
service:
|
|
||||||
telemetry:
|
|
||||||
logs:
|
|
||||||
encoding: json
|
|
||||||
metrics:
|
|
||||||
address: 0.0.0.0:8888
|
|
||||||
extensions:
|
|
||||||
- health_check
|
|
||||||
- zpages
|
|
||||||
- pprof
|
|
||||||
pipelines:
|
|
||||||
traces:
|
|
||||||
receivers: [jaeger, otlp]
|
|
||||||
processors: [signozspanmetrics/cumulative, signozspanmetrics/delta, batch]
|
|
||||||
exporters: [clickhousetraces]
|
|
||||||
metrics:
|
|
||||||
receivers: [otlp]
|
|
||||||
processors: [batch]
|
|
||||||
exporters: [clickhousemetricswrite]
|
|
||||||
metrics/generic:
|
|
||||||
receivers: [hostmetrics]
|
|
||||||
processors: [resourcedetection, batch]
|
|
||||||
exporters: [clickhousemetricswrite]
|
|
||||||
metrics/prometheus:
|
|
||||||
receivers: [prometheus]
|
|
||||||
processors: [batch]
|
|
||||||
exporters: [clickhousemetricswrite/prometheus]
|
|
||||||
logs:
|
|
||||||
receivers: [otlp, tcplog/docker]
|
|
||||||
processors: [batch]
|
|
||||||
exporters: [clickhouselogsexporter]
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
server_endpoint: ws://query-service:4320/v1/opamp
|
|
||||||
2
deploy/docker/clickhouse-setup/user_scripts/.deprecated
Normal file
2
deploy/docker/clickhouse-setup/user_scripts/.deprecated
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
This directory is deprecated and will be removed in the future.
|
||||||
|
Please use the new directory for Clickhouse setup scripts: `scripts/clickhouse` instead.
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
from locust import HttpUser, task, between
|
|
||||||
class UserTasks(HttpUser):
|
|
||||||
wait_time = between(5, 15)
|
|
||||||
|
|
||||||
@task
|
|
||||||
def rachel(self):
|
|
||||||
self.client.get("/dispatch?customer=123&nonse=0.6308392664170006")
|
|
||||||
@task
|
|
||||||
def trom(self):
|
|
||||||
self.client.get("/dispatch?customer=392&nonse=0.015296363321630757")
|
|
||||||
@task
|
|
||||||
def japanese(self):
|
|
||||||
self.client.get("/dispatch?customer=731&nonse=0.8022286220408668")
|
|
||||||
@task
|
|
||||||
def coffee(self):
|
|
||||||
self.client.get("/dispatch?customer=567&nonse=0.0022220379420636593")
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
map $http_upgrade $connection_upgrade {
|
|
||||||
default upgrade;
|
|
||||||
'' close;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 3301;
|
|
||||||
server_name _;
|
|
||||||
|
|
||||||
gzip on;
|
|
||||||
gzip_static on;
|
|
||||||
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
|
|
||||||
gzip_proxied any;
|
|
||||||
gzip_vary on;
|
|
||||||
gzip_comp_level 6;
|
|
||||||
gzip_buffers 16 8k;
|
|
||||||
gzip_http_version 1.1;
|
|
||||||
|
|
||||||
# to handle uri issue 414 from nginx
|
|
||||||
client_max_body_size 24M;
|
|
||||||
large_client_header_buffers 8 128k;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
if ( $uri = '/index.html' ) {
|
|
||||||
add_header Cache-Control no-store always;
|
|
||||||
}
|
|
||||||
root /usr/share/nginx/html;
|
|
||||||
index index.html index.htm;
|
|
||||||
try_files $uri $uri/ /index.html;
|
|
||||||
}
|
|
||||||
|
|
||||||
location ~ ^/api/(v1|v3)/logs/(tail|livetail){
|
|
||||||
proxy_pass http://query-service:8080;
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
|
|
||||||
# connection will be closed if no data is read for 600s between successive read operations
|
|
||||||
proxy_read_timeout 600s;
|
|
||||||
|
|
||||||
# dont buffer the data send it directly to client.
|
|
||||||
proxy_buffering off;
|
|
||||||
proxy_cache off;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /api {
|
|
||||||
proxy_pass http://query-service:8080/api;
|
|
||||||
# connection will be closed if no data is read for 600s between successive read operations
|
|
||||||
proxy_read_timeout 600s;
|
|
||||||
}
|
|
||||||
|
|
||||||
location /ws {
|
|
||||||
proxy_pass http://query-service:8080/ws;
|
|
||||||
proxy_http_version 1.1;
|
|
||||||
proxy_set_header Upgrade "websocket";
|
|
||||||
proxy_set_header Connection "upgrade";
|
|
||||||
proxy_read_timeout 86400;
|
|
||||||
}
|
|
||||||
|
|
||||||
# redirect server error pages to the static page /50x.html
|
|
||||||
#
|
|
||||||
error_page 500 502 503 504 /50x.html;
|
|
||||||
location = /50x.html {
|
|
||||||
root /usr/share/nginx/html;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
276
deploy/docker/docker-compose.ha.yaml
Normal file
276
deploy/docker/docker-compose.ha.yaml
Normal file
@@ -0,0 +1,276 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
restart: unless-stopped
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
x-clickhouse-defaults: &clickhouse-defaults
|
||||||
|
!!merge <<: *common
|
||||||
|
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
tty: true
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9363"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
depends_on:
|
||||||
|
init-clickhouse:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
zookeeper-1:
|
||||||
|
condition: service_healthy
|
||||||
|
zookeeper-2:
|
||||||
|
condition: service_healthy
|
||||||
|
zookeeper-3:
|
||||||
|
condition: service_healthy
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- 0.0.0.0:8123/ping
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 262144
|
||||||
|
hard: 262144
|
||||||
|
x-zookeeper-defaults: &zookeeper-defaults
|
||||||
|
!!merge <<: *common
|
||||||
|
image: bitnami/zookeeper:3.7.1
|
||||||
|
user: root
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9141"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
x-db-depend: &db-depend
|
||||||
|
!!merge <<: *common
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
services:
|
||||||
|
init-clickhouse:
|
||||||
|
!!merge <<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
container_name: signoz-init-clickhouse
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
version="v0.0.1"
|
||||||
|
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
|
||||||
|
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
|
||||||
|
cd /tmp
|
||||||
|
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
|
||||||
|
tar -xvzf histogram-quantile.tar.gz
|
||||||
|
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||||
|
restart: on-failure
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
zookeeper-1:
|
||||||
|
!!merge <<: *zookeeper-defaults
|
||||||
|
container_name: signoz-zookeeper-1
|
||||||
|
# ports:
|
||||||
|
# - "2181:2181"
|
||||||
|
# - "2888:2888"
|
||||||
|
# - "3888:3888"
|
||||||
|
volumes:
|
||||||
|
- zookeeper-1:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=1
|
||||||
|
- ZOO_SERVERS=0.0.0.0:2888:3888,zookeeper-2:2888:3888,zookeeper-3:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
zookeeper-2:
|
||||||
|
!!merge <<: *zookeeper-defaults
|
||||||
|
container_name: signoz-zookeeper-2
|
||||||
|
# ports:
|
||||||
|
# - "2182:2181"
|
||||||
|
# - "2889:2888"
|
||||||
|
# - "3889:3888"
|
||||||
|
volumes:
|
||||||
|
- zookeeper-2:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=2
|
||||||
|
- ZOO_SERVERS=zookeeper-1:2888:3888,0.0.0.0:2888:3888,zookeeper-3:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
zookeeper-3:
|
||||||
|
!!merge <<: *zookeeper-defaults
|
||||||
|
container_name: signoz-zookeeper-3
|
||||||
|
# ports:
|
||||||
|
# - "2183:2181"
|
||||||
|
# - "2890:2888"
|
||||||
|
# - "3890:3888"
|
||||||
|
volumes:
|
||||||
|
- zookeeper-3:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=3
|
||||||
|
- ZOO_SERVERS=zookeeper-1:2888:3888,zookeeper-2:2888:3888,0.0.0.0:2888:3888
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
clickhouse:
|
||||||
|
!!merge <<: *clickhouse-defaults
|
||||||
|
container_name: signoz-clickhouse
|
||||||
|
# ports:
|
||||||
|
# - "9000:9000"
|
||||||
|
# - "8123:8123"
|
||||||
|
# - "9181:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- clickhouse:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
clickhouse-2:
|
||||||
|
!!merge <<: *clickhouse-defaults
|
||||||
|
container_name: signoz-clickhouse-2
|
||||||
|
# ports:
|
||||||
|
# - "9001:9000"
|
||||||
|
# - "8124:8123"
|
||||||
|
# - "9182:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- clickhouse-2:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
clickhouse-3:
|
||||||
|
!!merge <<: *clickhouse-defaults
|
||||||
|
container_name: signoz-clickhouse-3
|
||||||
|
# ports:
|
||||||
|
# - "9002:9000"
|
||||||
|
# - "8125:8123"
|
||||||
|
# - "9183:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.ha.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- clickhouse-3:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
signoz:
|
||||||
|
!!merge <<: *db-depend
|
||||||
|
image: signoz/signoz:${VERSION:-v0.80.0}
|
||||||
|
container_name: signoz
|
||||||
|
command:
|
||||||
|
- --config=/root/config/prometheus.yml
|
||||||
|
- --use-logs-new-schema=true
|
||||||
|
- --use-trace-new-schema=true
|
||||||
|
ports:
|
||||||
|
- "8080:8080" # signoz port
|
||||||
|
# - "6060:6060" # pprof port
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/prometheus.yml:/root/config/prometheus.yml
|
||||||
|
- ../common/dashboards:/root/config/dashboards
|
||||||
|
- sqlite:/var/lib/signoz/
|
||||||
|
environment:
|
||||||
|
- SIGNOZ_ALERTMANAGER_PROVIDER=signoz
|
||||||
|
- SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000
|
||||||
|
- SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db
|
||||||
|
- DASHBOARDS_PATH=/root/config/dashboards
|
||||||
|
- STORAGE=clickhouse
|
||||||
|
- GODEBUG=netdns=go
|
||||||
|
- TELEMETRY_ENABLED=true
|
||||||
|
- DEPLOYMENT_TYPE=docker-standalone-amd
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- localhost:8080/api/v1/health
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
# TODO: support otel-collector multiple replicas. Nginx/Traefik for loadbalancing?
|
||||||
|
otel-collector:
|
||||||
|
!!merge <<: *db-depend
|
||||||
|
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-v0.111.39}
|
||||||
|
container_name: signoz-otel-collector
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
- --manager-config=/etc/manager-config.yaml
|
||||||
|
- --copy-path=/var/tmp/collector-config.yaml
|
||||||
|
- --feature-gates=-pkg.translator.prometheus.NormalizeName
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- ../common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
||||||
|
environment:
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
||||||
|
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
||||||
|
ports:
|
||||||
|
# - "1777:1777" # pprof extension
|
||||||
|
- "4317:4317" # OTLP gRPC receiver
|
||||||
|
- "4318:4318" # OTLP HTTP receiver
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
signoz:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
!!merge <<: *common
|
||||||
|
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-v0.111.39}
|
||||||
|
container_name: schema-migrator-sync
|
||||||
|
command:
|
||||||
|
- sync
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --up=
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-async:
|
||||||
|
!!merge <<: *db-depend
|
||||||
|
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-v0.111.39}
|
||||||
|
container_name: schema-migrator-async
|
||||||
|
command:
|
||||||
|
- async
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --up=
|
||||||
|
restart: on-failure
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
volumes:
|
||||||
|
clickhouse:
|
||||||
|
name: signoz-clickhouse
|
||||||
|
clickhouse-2:
|
||||||
|
name: signoz-clickhouse-2
|
||||||
|
clickhouse-3:
|
||||||
|
name: signoz-clickhouse-3
|
||||||
|
sqlite:
|
||||||
|
name: signoz-sqlite
|
||||||
|
zookeeper-1:
|
||||||
|
name: signoz-zookeeper-1
|
||||||
|
zookeeper-2:
|
||||||
|
name: signoz-zookeeper-2
|
||||||
|
zookeeper-3:
|
||||||
|
name: signoz-zookeeper-3
|
||||||
197
deploy/docker/docker-compose.yaml
Normal file
197
deploy/docker/docker-compose.yaml
Normal file
@@ -0,0 +1,197 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
restart: unless-stopped
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
x-clickhouse-defaults: &clickhouse-defaults
|
||||||
|
!!merge <<: *common
|
||||||
|
# addding non LTS version due to this fix https://github.com/ClickHouse/ClickHouse/commit/32caf8716352f45c1b617274c7508c86b7d1afab
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
tty: true
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9363"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
depends_on:
|
||||||
|
init-clickhouse:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
zookeeper-1:
|
||||||
|
condition: service_healthy
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- 0.0.0.0:8123/ping
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
ulimits:
|
||||||
|
nproc: 65535
|
||||||
|
nofile:
|
||||||
|
soft: 262144
|
||||||
|
hard: 262144
|
||||||
|
x-zookeeper-defaults: &zookeeper-defaults
|
||||||
|
!!merge <<: *common
|
||||||
|
image: bitnami/zookeeper:3.7.1
|
||||||
|
user: root
|
||||||
|
labels:
|
||||||
|
signoz.io/scrape: "true"
|
||||||
|
signoz.io/port: "9141"
|
||||||
|
signoz.io/path: "/metrics"
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- curl -s -m 2 http://localhost:8080/commands/ruok | grep error | grep null
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
x-db-depend: &db-depend
|
||||||
|
!!merge <<: *common
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
condition: service_completed_successfully
|
||||||
|
services:
|
||||||
|
init-clickhouse:
|
||||||
|
!!merge <<: *common
|
||||||
|
image: clickhouse/clickhouse-server:24.1.2-alpine
|
||||||
|
container_name: signoz-init-clickhouse
|
||||||
|
command:
|
||||||
|
- bash
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
version="v0.0.1"
|
||||||
|
node_os=$$(uname -s | tr '[:upper:]' '[:lower:]')
|
||||||
|
node_arch=$$(uname -m | sed s/aarch64/arm64/ | sed s/x86_64/amd64/)
|
||||||
|
echo "Fetching histogram-binary for $${node_os}/$${node_arch}"
|
||||||
|
cd /tmp
|
||||||
|
wget -O histogram-quantile.tar.gz "https://github.com/SigNoz/signoz/releases/download/histogram-quantile%2F$${version}/histogram-quantile_$${node_os}_$${node_arch}.tar.gz"
|
||||||
|
tar -xvzf histogram-quantile.tar.gz
|
||||||
|
mv histogram-quantile /var/lib/clickhouse/user_scripts/histogramQuantile
|
||||||
|
restart: on-failure
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
zookeeper-1:
|
||||||
|
!!merge <<: *zookeeper-defaults
|
||||||
|
container_name: signoz-zookeeper-1
|
||||||
|
# ports:
|
||||||
|
# - "2181:2181"
|
||||||
|
# - "2888:2888"
|
||||||
|
# - "3888:3888"
|
||||||
|
volumes:
|
||||||
|
- zookeeper-1:/bitnami/zookeeper
|
||||||
|
environment:
|
||||||
|
- ZOO_SERVER_ID=1
|
||||||
|
- ALLOW_ANONYMOUS_LOGIN=yes
|
||||||
|
- ZOO_AUTOPURGE_INTERVAL=1
|
||||||
|
- ZOO_ENABLE_PROMETHEUS_METRICS=yes
|
||||||
|
- ZOO_PROMETHEUS_METRICS_PORT_NUMBER=9141
|
||||||
|
clickhouse:
|
||||||
|
!!merge <<: *clickhouse-defaults
|
||||||
|
container_name: signoz-clickhouse
|
||||||
|
# ports:
|
||||||
|
# - "9000:9000"
|
||||||
|
# - "8123:8123"
|
||||||
|
# - "9181:9181"
|
||||||
|
volumes:
|
||||||
|
- ../common/clickhouse/config.xml:/etc/clickhouse-server/config.xml
|
||||||
|
- ../common/clickhouse/users.xml:/etc/clickhouse-server/users.xml
|
||||||
|
- ../common/clickhouse/custom-function.xml:/etc/clickhouse-server/custom-function.xml
|
||||||
|
- ../common/clickhouse/user_scripts:/var/lib/clickhouse/user_scripts/
|
||||||
|
- ../common/clickhouse/cluster.xml:/etc/clickhouse-server/config.d/cluster.xml
|
||||||
|
- clickhouse:/var/lib/clickhouse/
|
||||||
|
# - ../common/clickhouse/storage.xml:/etc/clickhouse-server/config.d/storage.xml
|
||||||
|
signoz:
|
||||||
|
!!merge <<: *db-depend
|
||||||
|
image: signoz/signoz:${VERSION:-v0.80.0}
|
||||||
|
container_name: signoz
|
||||||
|
command:
|
||||||
|
- --config=/root/config/prometheus.yml
|
||||||
|
- --use-logs-new-schema=true
|
||||||
|
- --use-trace-new-schema=true
|
||||||
|
ports:
|
||||||
|
- "8080:8080" # signoz port
|
||||||
|
# - "6060:6060" # pprof port
|
||||||
|
volumes:
|
||||||
|
- ../common/signoz/prometheus.yml:/root/config/prometheus.yml
|
||||||
|
- ../common/dashboards:/root/config/dashboards
|
||||||
|
- sqlite:/var/lib/signoz/
|
||||||
|
environment:
|
||||||
|
- SIGNOZ_ALERTMANAGER_PROVIDER=signoz
|
||||||
|
- SIGNOZ_TELEMETRYSTORE_CLICKHOUSE_DSN=tcp://clickhouse:9000
|
||||||
|
- SIGNOZ_SQLSTORE_SQLITE_PATH=/var/lib/signoz/signoz.db
|
||||||
|
- DASHBOARDS_PATH=/root/config/dashboards
|
||||||
|
- STORAGE=clickhouse
|
||||||
|
- GODEBUG=netdns=go
|
||||||
|
- TELEMETRY_ENABLED=true
|
||||||
|
- DEPLOYMENT_TYPE=docker-standalone-amd
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD
|
||||||
|
- wget
|
||||||
|
- --spider
|
||||||
|
- -q
|
||||||
|
- localhost:8080/api/v1/health
|
||||||
|
interval: 30s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 3
|
||||||
|
otel-collector:
|
||||||
|
!!merge <<: *db-depend
|
||||||
|
image: signoz/signoz-otel-collector:${OTELCOL_TAG:-v0.111.39}
|
||||||
|
container_name: signoz-otel-collector
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
- --manager-config=/etc/manager-config.yaml
|
||||||
|
- --copy-path=/var/tmp/collector-config.yaml
|
||||||
|
- --feature-gates=-pkg.translator.prometheus.NormalizeName
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- ../common/signoz/otel-collector-opamp-config.yaml:/etc/manager-config.yaml
|
||||||
|
environment:
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux
|
||||||
|
- LOW_CARDINAL_EXCEPTION_GROUPING=false
|
||||||
|
ports:
|
||||||
|
# - "1777:1777" # pprof extension
|
||||||
|
- "4317:4317" # OTLP gRPC receiver
|
||||||
|
- "4318:4318" # OTLP HTTP receiver
|
||||||
|
depends_on:
|
||||||
|
signoz:
|
||||||
|
condition: service_healthy
|
||||||
|
schema-migrator-sync:
|
||||||
|
!!merge <<: *common
|
||||||
|
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-v0.111.39}
|
||||||
|
container_name: schema-migrator-sync
|
||||||
|
command:
|
||||||
|
- sync
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --up=
|
||||||
|
depends_on:
|
||||||
|
clickhouse:
|
||||||
|
condition: service_healthy
|
||||||
|
restart: on-failure
|
||||||
|
schema-migrator-async:
|
||||||
|
!!merge <<: *db-depend
|
||||||
|
image: signoz/signoz-schema-migrator:${OTELCOL_TAG:-v0.111.39}
|
||||||
|
container_name: schema-migrator-async
|
||||||
|
command:
|
||||||
|
- async
|
||||||
|
- --dsn=tcp://clickhouse:9000
|
||||||
|
- --up=
|
||||||
|
restart: on-failure
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
volumes:
|
||||||
|
clickhouse:
|
||||||
|
name: signoz-clickhouse
|
||||||
|
sqlite:
|
||||||
|
name: signoz-sqlite
|
||||||
|
zookeeper-1:
|
||||||
|
name: signoz-zookeeper-1
|
||||||
39
deploy/docker/generator/hotrod/docker-compose.yaml
Normal file
39
deploy/docker/generator/hotrod/docker-compose.yaml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
extra_hosts:
|
||||||
|
- host.docker.internal:host-gateway
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
restart: unless-stopped
|
||||||
|
services:
|
||||||
|
hotrod:
|
||||||
|
<<: *common
|
||||||
|
image: jaegertracing/example-hotrod:1.61.0
|
||||||
|
container_name: hotrod
|
||||||
|
command: [ "all" ]
|
||||||
|
environment:
|
||||||
|
- OTEL_EXPORTER_OTLP_ENDPOINT=http://host.docker.internal:4318 # In case of external SigNoz or cloud, update the endpoint and access token
|
||||||
|
# - OTEL_OTLP_HEADERS=signoz-access-token=<your-access-token>
|
||||||
|
load-hotrod:
|
||||||
|
<<: *common
|
||||||
|
image: "signoz/locust:1.2.3"
|
||||||
|
container_name: load-hotrod
|
||||||
|
environment:
|
||||||
|
ATTACKED_HOST: http://hotrod:8080
|
||||||
|
LOCUST_MODE: standalone
|
||||||
|
NO_PROXY: standalone
|
||||||
|
TASK_DELAY_FROM: 5
|
||||||
|
TASK_DELAY_TO: 30
|
||||||
|
QUIET_MODE: "${QUIET_MODE:-false}"
|
||||||
|
LOCUST_OPTS: "--headless -u 10 -r 1"
|
||||||
|
volumes:
|
||||||
|
- ../../../common/locust-scripts:/locust
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
external: true
|
||||||
43
deploy/docker/generator/infra/docker-compose.yaml
Normal file
43
deploy/docker/generator/infra/docker-compose.yaml
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
version: "3"
|
||||||
|
x-common: &common
|
||||||
|
networks:
|
||||||
|
- signoz-net
|
||||||
|
extra_hosts:
|
||||||
|
- host.docker.internal:host-gateway
|
||||||
|
logging:
|
||||||
|
options:
|
||||||
|
max-size: 50m
|
||||||
|
max-file: "3"
|
||||||
|
restart: unless-stopped
|
||||||
|
services:
|
||||||
|
otel-agent:
|
||||||
|
<<: *common
|
||||||
|
image: otel/opentelemetry-collector-contrib:0.111.0
|
||||||
|
command:
|
||||||
|
- --config=/etc/otel-collector-config.yaml
|
||||||
|
volumes:
|
||||||
|
- ./otel-collector-config.yaml:/etc/otel-collector-config.yaml
|
||||||
|
- /:/hostfs:ro
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
environment:
|
||||||
|
- SIGNOZ_COLLECTOR_ENDPOINT=http://host.docker.internal:4317 # In case of external SigNoz or cloud, update the endpoint and access token
|
||||||
|
- OTEL_RESOURCE_ATTRIBUTES=host.name=signoz-host,os.type=linux # Replace signoz-host with the actual hostname
|
||||||
|
# - SIGNOZ_ACCESS_TOKEN="<your-access-token>"
|
||||||
|
# Before exposing the ports, make sure the ports are not used by other services
|
||||||
|
# ports:
|
||||||
|
# - "4317:4317"
|
||||||
|
# - "4318:4318"
|
||||||
|
logspout:
|
||||||
|
<<: *common
|
||||||
|
image: "gliderlabs/logspout:v3.2.14"
|
||||||
|
volumes:
|
||||||
|
- /etc/hostname:/etc/host_hostname:ro
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
command: syslog+tcp://otel-agent:2255
|
||||||
|
depends_on:
|
||||||
|
- otel-agent
|
||||||
|
|
||||||
|
networks:
|
||||||
|
signoz-net:
|
||||||
|
name: signoz-net
|
||||||
|
external: true
|
||||||
139
deploy/docker/generator/infra/otel-collector-config.yaml
Normal file
139
deploy/docker/generator/infra/otel-collector-config.yaml
Normal file
@@ -0,0 +1,139 @@
|
|||||||
|
receivers:
|
||||||
|
hostmetrics:
|
||||||
|
collection_interval: 30s
|
||||||
|
root_path: /hostfs
|
||||||
|
scrapers:
|
||||||
|
cpu: {}
|
||||||
|
load: {}
|
||||||
|
memory: {}
|
||||||
|
disk: {}
|
||||||
|
filesystem: {}
|
||||||
|
network: {}
|
||||||
|
otlp:
|
||||||
|
protocols:
|
||||||
|
grpc:
|
||||||
|
endpoint: 0.0.0.0:4317
|
||||||
|
http:
|
||||||
|
endpoint: 0.0.0.0:4318
|
||||||
|
prometheus:
|
||||||
|
config:
|
||||||
|
global:
|
||||||
|
scrape_interval: 60s
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: otel-collector
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
- localhost:8888
|
||||||
|
labels:
|
||||||
|
job_name: otel-collector
|
||||||
|
# For Docker daemon metrics to be scraped, it must be configured to expose
|
||||||
|
# Prometheus metrics, as documented here: https://docs.docker.com/config/daemon/prometheus/
|
||||||
|
# - job_name: docker-daemon
|
||||||
|
# static_configs:
|
||||||
|
# - targets:
|
||||||
|
# - host.docker.internal:9323
|
||||||
|
# labels:
|
||||||
|
# job_name: docker-daemon
|
||||||
|
- job_name: docker-container
|
||||||
|
docker_sd_configs:
|
||||||
|
- host: unix:///var/run/docker.sock
|
||||||
|
relabel_configs:
|
||||||
|
- action: keep
|
||||||
|
regex: true
|
||||||
|
source_labels:
|
||||||
|
- __meta_docker_container_label_signoz_io_scrape
|
||||||
|
- regex: true
|
||||||
|
source_labels:
|
||||||
|
- __meta_docker_container_label_signoz_io_path
|
||||||
|
target_label: __metrics_path__
|
||||||
|
- regex: (.+)
|
||||||
|
source_labels:
|
||||||
|
- __meta_docker_container_label_signoz_io_path
|
||||||
|
target_label: __metrics_path__
|
||||||
|
- separator: ":"
|
||||||
|
source_labels:
|
||||||
|
- __meta_docker_network_ip
|
||||||
|
- __meta_docker_container_label_signoz_io_port
|
||||||
|
target_label: __address__
|
||||||
|
- regex: '/(.*)'
|
||||||
|
replacement: '$1'
|
||||||
|
source_labels:
|
||||||
|
- __meta_docker_container_name
|
||||||
|
target_label: container_name
|
||||||
|
- regex: __meta_docker_container_label_signoz_io_(.+)
|
||||||
|
action: labelmap
|
||||||
|
replacement: $1
|
||||||
|
tcplog/docker:
|
||||||
|
listen_address: "0.0.0.0:2255"
|
||||||
|
operators:
|
||||||
|
- type: regex_parser
|
||||||
|
regex: '^<([0-9]+)>[0-9]+ (?P<timestamp>[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(\.[0-9]+)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?) (?P<container_id>\S+) (?P<container_name>\S+) [0-9]+ - -( (?P<body>.*))?'
|
||||||
|
timestamp:
|
||||||
|
parse_from: attributes.timestamp
|
||||||
|
layout: '%Y-%m-%dT%H:%M:%S.%LZ'
|
||||||
|
- type: move
|
||||||
|
from: attributes["body"]
|
||||||
|
to: body
|
||||||
|
- type: remove
|
||||||
|
field: attributes.timestamp
|
||||||
|
# please remove names from below if you want to collect logs from them
|
||||||
|
- type: filter
|
||||||
|
id: signoz_logs_filter
|
||||||
|
expr: 'attributes.container_name matches "^signoz|(signoz-(|otel-collector|clickhouse|zookeeper))|(infra-(logspout|otel-agent)-.*)"'
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
send_batch_size: 10000
|
||||||
|
send_batch_max_size: 11000
|
||||||
|
timeout: 10s
|
||||||
|
resourcedetection:
|
||||||
|
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
||||||
|
detectors:
|
||||||
|
# - ec2
|
||||||
|
# - gcp
|
||||||
|
# - azure
|
||||||
|
- env
|
||||||
|
- system
|
||||||
|
timeout: 2s
|
||||||
|
extensions:
|
||||||
|
health_check:
|
||||||
|
endpoint: 0.0.0.0:13133
|
||||||
|
pprof:
|
||||||
|
endpoint: 0.0.0.0:1777
|
||||||
|
exporters:
|
||||||
|
otlp:
|
||||||
|
endpoint: ${env:SIGNOZ_COLLECTOR_ENDPOINT}
|
||||||
|
tls:
|
||||||
|
insecure: true
|
||||||
|
headers:
|
||||||
|
signoz-access-token: ${env:SIGNOZ_ACCESS_TOKEN}
|
||||||
|
# debug: {}
|
||||||
|
service:
|
||||||
|
telemetry:
|
||||||
|
logs:
|
||||||
|
encoding: json
|
||||||
|
metrics:
|
||||||
|
address: 0.0.0.0:8888
|
||||||
|
extensions:
|
||||||
|
- health_check
|
||||||
|
- pprof
|
||||||
|
pipelines:
|
||||||
|
traces:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics/hostmetrics:
|
||||||
|
receivers: [hostmetrics]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
metrics/prometheus:
|
||||||
|
receivers: [prometheus]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
|
logs:
|
||||||
|
receivers: [otlp, tcplog/docker]
|
||||||
|
processors: [resourcedetection, batch]
|
||||||
|
exporters: [otlp]
|
||||||
101
deploy/docker/otel-collector-config.yaml
Normal file
101
deploy/docker/otel-collector-config.yaml
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
receivers:
|
||||||
|
otlp:
|
||||||
|
protocols:
|
||||||
|
grpc:
|
||||||
|
endpoint: 0.0.0.0:4317
|
||||||
|
http:
|
||||||
|
endpoint: 0.0.0.0:4318
|
||||||
|
prometheus:
|
||||||
|
config:
|
||||||
|
global:
|
||||||
|
scrape_interval: 60s
|
||||||
|
scrape_configs:
|
||||||
|
- job_name: otel-collector
|
||||||
|
static_configs:
|
||||||
|
- targets:
|
||||||
|
- localhost:8888
|
||||||
|
labels:
|
||||||
|
job_name: otel-collector
|
||||||
|
processors:
|
||||||
|
batch:
|
||||||
|
send_batch_size: 10000
|
||||||
|
send_batch_max_size: 11000
|
||||||
|
timeout: 10s
|
||||||
|
resourcedetection:
|
||||||
|
# Using OTEL_RESOURCE_ATTRIBUTES envvar, env detector adds custom labels.
|
||||||
|
detectors: [env, system]
|
||||||
|
timeout: 2s
|
||||||
|
signozspanmetrics/delta:
|
||||||
|
metrics_exporter: clickhousemetricswrite
|
||||||
|
metrics_flush_interval: 60s
|
||||||
|
latency_histogram_buckets: [100us, 1ms, 2ms, 6ms, 10ms, 50ms, 100ms, 250ms, 500ms, 1000ms, 1400ms, 2000ms, 5s, 10s, 20s, 40s, 60s ]
|
||||||
|
dimensions_cache_size: 100000
|
||||||
|
aggregation_temporality: AGGREGATION_TEMPORALITY_DELTA
|
||||||
|
enable_exp_histogram: true
|
||||||
|
dimensions:
|
||||||
|
- name: service.namespace
|
||||||
|
default: default
|
||||||
|
- name: deployment.environment
|
||||||
|
default: default
|
||||||
|
# This is added to ensure the uniqueness of the timeseries
|
||||||
|
# Otherwise, identical timeseries produced by multiple replicas of
|
||||||
|
# collectors result in incorrect APM metrics
|
||||||
|
- name: signoz.collector.id
|
||||||
|
- name: service.version
|
||||||
|
- name: browser.platform
|
||||||
|
- name: browser.mobile
|
||||||
|
- name: k8s.cluster.name
|
||||||
|
- name: k8s.node.name
|
||||||
|
- name: k8s.namespace.name
|
||||||
|
- name: host.name
|
||||||
|
- name: host.type
|
||||||
|
- name: container.name
|
||||||
|
extensions:
|
||||||
|
health_check:
|
||||||
|
endpoint: 0.0.0.0:13133
|
||||||
|
pprof:
|
||||||
|
endpoint: 0.0.0.0:1777
|
||||||
|
exporters:
|
||||||
|
clickhousetraces:
|
||||||
|
datasource: tcp://clickhouse:9000/signoz_traces
|
||||||
|
low_cardinal_exception_grouping: ${env:LOW_CARDINAL_EXCEPTION_GROUPING}
|
||||||
|
use_new_schema: true
|
||||||
|
clickhousemetricswrite:
|
||||||
|
endpoint: tcp://clickhouse:9000/signoz_metrics
|
||||||
|
resource_to_telemetry_conversion:
|
||||||
|
enabled: true
|
||||||
|
clickhousemetricswrite/prometheus:
|
||||||
|
endpoint: tcp://clickhouse:9000/signoz_metrics
|
||||||
|
signozclickhousemetrics:
|
||||||
|
dsn: tcp://clickhouse:9000/signoz_metrics
|
||||||
|
clickhouselogsexporter:
|
||||||
|
dsn: tcp://clickhouse:9000/signoz_logs
|
||||||
|
timeout: 10s
|
||||||
|
use_new_schema: true
|
||||||
|
# debug: {}
|
||||||
|
service:
|
||||||
|
telemetry:
|
||||||
|
logs:
|
||||||
|
encoding: json
|
||||||
|
metrics:
|
||||||
|
address: 0.0.0.0:8888
|
||||||
|
extensions:
|
||||||
|
- health_check
|
||||||
|
- pprof
|
||||||
|
pipelines:
|
||||||
|
traces:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [signozspanmetrics/delta, batch]
|
||||||
|
exporters: [clickhousetraces]
|
||||||
|
metrics:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [batch]
|
||||||
|
exporters: [clickhousemetricswrite, signozclickhousemetrics]
|
||||||
|
metrics/prometheus:
|
||||||
|
receivers: [prometheus]
|
||||||
|
processors: [batch]
|
||||||
|
exporters: [clickhousemetricswrite/prometheus, signozclickhousemetrics]
|
||||||
|
logs:
|
||||||
|
receivers: [otlp]
|
||||||
|
processors: [batch]
|
||||||
|
exporters: [clickhouselogsexporter]
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user