add logging

This commit is contained in:
Peter Maquiran
2024-07-22 11:37:02 +01:00
parent ef7edb3978
commit 717968ac52
12 changed files with 787 additions and 35 deletions
+5 -3
View File
@@ -1,21 +1,23 @@
{ {
"folders": [ "folders": [
{ {
"name": "gabinete-digital-fo",
"path": "." "path": "."
}, },
{ {
"name": "socket-server",
"path": "../socket-server" "path": "../socket-server"
}, },
{ {
"name": "logs",
"path": "../logs" "path": "../logs"
}, },
{ {
"name": "opentelemetry-js-main",
"path": "../../../Downloads/opentelemetry-js-main/opentelemetry-js-main" "path": "../../../Downloads/opentelemetry-js-main/opentelemetry-js-main"
}, },
{ {
"path": "../grayLog" "name": "nestjs-microservice-boilerplate-api-master",
},
{
"path": "../../../Downloads/nestjs-microservice-boilerplate-api-master" "path": "../../../Downloads/nestjs-microservice-boilerplate-api-master"
} }
], ],
+556 -9
View File
@@ -99,6 +99,7 @@
"@ngx-translate/core": "^13.0.0", "@ngx-translate/core": "^13.0.0",
"@ngxs/store": "^3.8.2", "@ngxs/store": "^3.8.2",
"@opentelemetry/exporter-metrics-otlp-http": "^0.52.1", "@opentelemetry/exporter-metrics-otlp-http": "^0.52.1",
"@opentelemetry/exporter-otlp-http": "^0.26.0",
"@opentelemetry/exporter-zipkin": "^1.25.0", "@opentelemetry/exporter-zipkin": "^1.25.0",
"@opentelemetry/resources": "^1.25.0", "@opentelemetry/resources": "^1.25.0",
"@opentelemetry/sdk-metrics": "^1.25.1", "@opentelemetry/sdk-metrics": "^1.25.1",
@@ -106,8 +107,9 @@
"@opentelemetry/sdk-trace-web": "^1.25.0", "@opentelemetry/sdk-trace-web": "^1.25.0",
"@opentelemetry/semantic-conventions": "^1.25.0", "@opentelemetry/semantic-conventions": "^1.25.0",
"@pdftron/pdfjs-express": "^8.0.1", "@pdftron/pdfjs-express": "^8.0.1",
"@sentry/angular": "7.73.0", "@sentry/angular": "^7.73.0",
"@sentry/capacitor": "^0.14.0", "@sentry/capacitor": "^0.14.0",
"@sentry/tracing": "^7.114.0",
"@teamhive/capacitor-video-recorder": "^5.0.0", "@teamhive/capacitor-video-recorder": "^5.0.0",
"@tinymce/tinymce-angular": "^4.2.4", "@tinymce/tinymce-angular": "^4.2.4",
"@types/jest-environment-puppeteer": "^5.0.3", "@types/jest-environment-puppeteer": "^5.0.3",
@@ -210,6 +212,7 @@
"@capacitor/cli": "^4.8.1", "@capacitor/cli": "^4.8.1",
"@ionic/angular-toolkit": "^6.1.0", "@ionic/angular-toolkit": "^6.1.0",
"@ionic/lab": "3.1.7", "@ionic/lab": "3.1.7",
"@sentry/cli": "^2.32.2",
"@types/core-js": "^2.5.7", "@types/core-js": "^2.5.7",
"@types/jasmine": "~3.6.0", "@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3", "@types/jasminewd2": "~2.0.3",
@@ -7770,6 +7773,18 @@
"node": ">=14" "node": ">=14"
} }
}, },
"node_modules/@opentelemetry/api-metrics": {
"version": "0.26.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.26.0.tgz",
"integrity": "sha512-idDSUTx+LRwJiHhVHhdh45SWow5u9lKNDROKu5AMzsIVPI29utH5FfT9vor8qMM6blxWWvlT22HUNdNMWqUQfQ==",
"deprecated": "Please use @opentelemetry/api >= 1.3.0",
"engines": {
"node": ">=8.0.0"
},
"peerDependencies": {
"@opentelemetry/api": "^1.0.2"
}
},
"node_modules/@opentelemetry/core": { "node_modules/@opentelemetry/core": {
"version": "1.25.0", "version": "1.25.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.0.tgz", "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.0.tgz",
@@ -7839,6 +7854,80 @@
"node": ">=14" "node": ">=14"
} }
}, },
"node_modules/@opentelemetry/exporter-otlp-http": {
"version": "0.26.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/exporter-otlp-http/-/exporter-otlp-http-0.26.0.tgz",
"integrity": "sha512-V3FcUEIVDZ66b3/6vjSBjwwozf/XV5eUXuELNzN8PAvGZH4mw36vaWlaxnGEV8HaZb2hbu2KbRpcOzqxx3tFDA==",
"deprecated": "Please use trace and metric specific exporters @opentelemetry/exporter-trace-otlp-http and @opentelemetry/exporter-metrics-otlp-http",
"dependencies": {
"@opentelemetry/api-metrics": "0.26.0",
"@opentelemetry/core": "1.0.0",
"@opentelemetry/resources": "1.0.0",
"@opentelemetry/sdk-metrics-base": "0.26.0",
"@opentelemetry/sdk-trace-base": "1.0.0"
},
"engines": {
"node": ">=8.0.0"
},
"peerDependencies": {
"@opentelemetry/api": "^1.0.2"
}
},
"node_modules/@opentelemetry/exporter-otlp-http/node_modules/@opentelemetry/core": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.0.tgz",
"integrity": "sha512-1+qvKilADnSFW4PiXy+f7D22pvfGVxepZ69GcbF8cTcbQTUt7w63xEBWn5f5j92x9I3c0sqbW1RUx5/a4wgzxA==",
"dependencies": {
"@opentelemetry/semantic-conventions": "1.0.0",
"semver": "^7.3.5"
},
"engines": {
"node": ">=8.5.0"
},
"peerDependencies": {
"@opentelemetry/api": "^1.0.2"
}
},
"node_modules/@opentelemetry/exporter-otlp-http/node_modules/@opentelemetry/resources": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.0.tgz",
"integrity": "sha512-ORP8F2LLcJEm5M3H24RmdlMdiDc70ySPushpkrAW34KZGdZXwkrFoFXZhhs5MUxPT+fLrTuBafXxZVr8eHtFuQ==",
"dependencies": {
"@opentelemetry/core": "1.0.0",
"@opentelemetry/semantic-conventions": "1.0.0"
},
"engines": {
"node": ">=8.0.0"
},
"peerDependencies": {
"@opentelemetry/api": "^1.0.2"
}
},
"node_modules/@opentelemetry/exporter-otlp-http/node_modules/@opentelemetry/sdk-trace-base": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.0.0.tgz",
"integrity": "sha512-/rXoyQlDlJTJ4SOVAbP0Gpj89B8oZ2hJApYG2Dq5klkgFAtDifN8271TIzwtM8/ET8HUhgx9eyoUJi42LhIesg==",
"dependencies": {
"@opentelemetry/core": "1.0.0",
"@opentelemetry/resources": "1.0.0",
"@opentelemetry/semantic-conventions": "1.0.0",
"lodash.merge": "^4.6.2"
},
"engines": {
"node": ">=8.0.0"
},
"peerDependencies": {
"@opentelemetry/api": "^1.0.2"
}
},
"node_modules/@opentelemetry/exporter-otlp-http/node_modules/@opentelemetry/semantic-conventions": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.0.tgz",
"integrity": "sha512-XCZ6ZSmc8FOspxKUU+Ow9UtJeSSRcS5rFBYGpjzix02U2v+X9ofjOjgNRnpvxlSvkccYIhdTuwcvNskmZ46SeA==",
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@opentelemetry/exporter-zipkin": { "node_modules/@opentelemetry/exporter-zipkin": {
"version": "1.25.0", "version": "1.25.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.25.0.tgz", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.25.0.tgz",
@@ -8086,6 +8175,62 @@
"@opentelemetry/api": ">=1.3.0 <1.10.0" "@opentelemetry/api": ">=1.3.0 <1.10.0"
} }
}, },
"node_modules/@opentelemetry/sdk-metrics-base": {
"version": "0.26.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.26.0.tgz",
"integrity": "sha512-PbJsso7Vy/CLATAOyXbt/VP7ZQ2QYnvlq28lhOWaLPw8aqLogMBvidNGRrt7rF4/hfzLT6pMgpAAcit2C/nUMA==",
"deprecated": "Please use @opentelemetry/sdk-metrics",
"dependencies": {
"@opentelemetry/api-metrics": "0.26.0",
"@opentelemetry/core": "1.0.0",
"@opentelemetry/resources": "1.0.0",
"lodash.merge": "^4.6.2"
},
"engines": {
"node": ">=8.0.0"
},
"peerDependencies": {
"@opentelemetry/api": "^1.0.2"
}
},
"node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/core": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.0.tgz",
"integrity": "sha512-1+qvKilADnSFW4PiXy+f7D22pvfGVxepZ69GcbF8cTcbQTUt7w63xEBWn5f5j92x9I3c0sqbW1RUx5/a4wgzxA==",
"dependencies": {
"@opentelemetry/semantic-conventions": "1.0.0",
"semver": "^7.3.5"
},
"engines": {
"node": ">=8.5.0"
},
"peerDependencies": {
"@opentelemetry/api": "^1.0.2"
}
},
"node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/resources": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.0.tgz",
"integrity": "sha512-ORP8F2LLcJEm5M3H24RmdlMdiDc70ySPushpkrAW34KZGdZXwkrFoFXZhhs5MUxPT+fLrTuBafXxZVr8eHtFuQ==",
"dependencies": {
"@opentelemetry/core": "1.0.0",
"@opentelemetry/semantic-conventions": "1.0.0"
},
"engines": {
"node": ">=8.0.0"
},
"peerDependencies": {
"@opentelemetry/api": "^1.0.2"
}
},
"node_modules/@opentelemetry/sdk-metrics-base/node_modules/@opentelemetry/semantic-conventions": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.0.tgz",
"integrity": "sha512-XCZ6ZSmc8FOspxKUU+Ow9UtJeSSRcS5rFBYGpjzix02U2v+X9ofjOjgNRnpvxlSvkccYIhdTuwcvNskmZ46SeA==",
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": { "node_modules/@opentelemetry/sdk-metrics/node_modules/@opentelemetry/core": {
"version": "1.25.1", "version": "1.25.1",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz", "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.1.tgz",
@@ -8404,6 +8549,161 @@
} }
} }
}, },
"node_modules/@sentry/capacitor/node_modules/@sentry/tracing": {
"version": "7.73.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.73.0.tgz",
"integrity": "sha512-LOQR6Hkc8ZoflCXWtMlxTbCBEwv0MSOr3vesnRsmlFG8TW1YUIneU+wKnVxToWAZ8fq+6ubclnuIUKHfqTk/Tg==",
"dependencies": {
"@sentry-internal/tracing": "7.73.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/cli": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.32.2.tgz",
"integrity": "sha512-m/6Z3FWu+rTd8jepVlJPKQhvbT8vCjt0N7BSWZiEUVW/8mhwAYJiwO0b+Ch/u4IqbBg1dp3805q5TFPl4AdrNw==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
"https-proxy-agent": "^5.0.0",
"node-fetch": "^2.6.7",
"progress": "^2.0.3",
"proxy-from-env": "^1.1.0",
"which": "^2.0.2"
},
"bin": {
"sentry-cli": "bin/sentry-cli"
},
"engines": {
"node": ">= 10"
},
"optionalDependencies": {
"@sentry/cli-darwin": "2.32.2",
"@sentry/cli-linux-arm": "2.32.2",
"@sentry/cli-linux-arm64": "2.32.2",
"@sentry/cli-linux-i686": "2.32.2",
"@sentry/cli-linux-x64": "2.32.2",
"@sentry/cli-win32-i686": "2.32.2",
"@sentry/cli-win32-x64": "2.32.2"
}
},
"node_modules/@sentry/cli-darwin": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.32.2.tgz",
"integrity": "sha512-GDtePIavx3FKSRowdPdtIssahn46MfFFYNN+s7a9MjlhFwJtvC9A1bSDw7ksEtDaQolepUwmLPHaVe19y0T/zw==",
"dev": true,
"optional": true,
"os": [
"darwin"
],
"engines": {
"node": ">=10"
}
},
"node_modules/@sentry/cli-linux-arm": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.32.2.tgz",
"integrity": "sha512-u9s08wr8bDDqsAl6pk9iGGlOHtU+T8btU6voNKy71QzeIBpV9c8VVk/OnmP9aswp/ea4NY416yjnzcTvCrFKAw==",
"cpu": [
"arm"
],
"dev": true,
"optional": true,
"os": [
"linux",
"freebsd"
],
"engines": {
"node": ">=10"
}
},
"node_modules/@sentry/cli-linux-arm64": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.32.2.tgz",
"integrity": "sha512-VECLVC1rLyvXk6rTVUfmfs4vhANjMgm4BVKGlA3rydmf2PJw2/NfipH3KeyijdE2vEoyLri+/6HH883pP0iniQ==",
"cpu": [
"arm64"
],
"dev": true,
"optional": true,
"os": [
"linux",
"freebsd"
],
"engines": {
"node": ">=10"
}
},
"node_modules/@sentry/cli-linux-i686": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.32.2.tgz",
"integrity": "sha512-XhofQz32OqLrQK1DEOsryhT7d29Df6VkccvxueGoIt2gpXEXtgRczsUwZjZqquDdkNCt+HPj9eUGcj8pY8JkmQ==",
"cpu": [
"x86",
"ia32"
],
"dev": true,
"optional": true,
"os": [
"linux",
"freebsd"
],
"engines": {
"node": ">=10"
}
},
"node_modules/@sentry/cli-linux-x64": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.32.2.tgz",
"integrity": "sha512-anyng4Qqt7zX4ZY4IzDH1RJWAVZNBe6sUHcuciNy7giCU3B4/XnxAHlwYmBSN5txpaumsWdstPgRKEUJG6AOSA==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"linux",
"freebsd"
],
"engines": {
"node": ">=10"
}
},
"node_modules/@sentry/cli-win32-i686": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.32.2.tgz",
"integrity": "sha512-/auqx7QXG7F556fNK7vaB26pX7Far1CQMfI65iV4u/VWg6gV2WfvJWXB4iowhjqkYv56sZ+zOymLkEVF0R8wtg==",
"cpu": [
"x86",
"ia32"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=10"
}
},
"node_modules/@sentry/cli-win32-x64": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.32.2.tgz",
"integrity": "sha512-w7hW2sEWVYQquqdILBSFhcVW+HdoyLqVPPkLPAXRSLTwBnuni9nQEIdXr0h/7db+K3cm7PvWndp5ixVyswLHZA==",
"cpu": [
"x64"
],
"dev": true,
"optional": true,
"os": [
"win32"
],
"engines": {
"node": ">=10"
}
},
"node_modules/@sentry/core": { "node_modules/@sentry/core": {
"version": "7.73.0", "version": "7.73.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.73.0.tgz", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.73.0.tgz",
@@ -8483,11 +8783,55 @@
} }
}, },
"node_modules/@sentry/tracing": { "node_modules/@sentry/tracing": {
"version": "7.73.0", "version": "7.114.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.73.0.tgz", "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.114.0.tgz",
"integrity": "sha512-LOQR6Hkc8ZoflCXWtMlxTbCBEwv0MSOr3vesnRsmlFG8TW1YUIneU+wKnVxToWAZ8fq+6ubclnuIUKHfqTk/Tg==", "integrity": "sha512-eldEYGADReZ4jWdN5u35yxLUSTOvjsiZAYd4KBEpf+Ii65n7g/kYOKAjNl7tHbrEG1EsMW4nDPWStUMk1w+tfg==",
"dependencies": { "dependencies": {
"@sentry-internal/tracing": "7.73.0" "@sentry-internal/tracing": "7.114.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/tracing/node_modules/@sentry-internal/tracing": {
"version": "7.114.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.114.0.tgz",
"integrity": "sha512-dOuvfJN7G+3YqLlUY4HIjyWHaRP8vbOgF+OsE5w2l7ZEn1rMAaUbPntAR8AF9GBA6j2zWNoSo8e7GjbJxVofSg==",
"dependencies": {
"@sentry/core": "7.114.0",
"@sentry/types": "7.114.0",
"@sentry/utils": "7.114.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/tracing/node_modules/@sentry/core": {
"version": "7.114.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.114.0.tgz",
"integrity": "sha512-YnanVlmulkjgZiVZ9BfY9k6I082n+C+LbZo52MTvx3FY6RE5iyiPMpaOh67oXEZRWcYQEGm+bKruRxLVP6RlbA==",
"dependencies": {
"@sentry/types": "7.114.0",
"@sentry/utils": "7.114.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/tracing/node_modules/@sentry/types": {
"version": "7.114.0",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.114.0.tgz",
"integrity": "sha512-tsqkkyL3eJtptmPtT0m9W/bPLkU7ILY7nvwpi1hahA5jrM7ppoU0IMaQWAgTD+U3rzFH40IdXNBFb8Gnqcva4w==",
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/tracing/node_modules/@sentry/utils": {
"version": "7.114.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.114.0.tgz",
"integrity": "sha512-319N90McVpupQ6vws4+tfCy/03AdtsU0MurIE4+W5cubHME08HtiEWlfacvAxX+yuKFhvdsO4K4BB/dj54ideg==",
"dependencies": {
"@sentry/types": "7.114.0"
}, },
"engines": { "engines": {
"node": ">=8" "node": ">=8"
@@ -49988,6 +50332,12 @@
"@opentelemetry/api": "^1.0.0" "@opentelemetry/api": "^1.0.0"
} }
}, },
"@opentelemetry/api-metrics": {
"version": "0.26.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/api-metrics/-/api-metrics-0.26.0.tgz",
"integrity": "sha512-idDSUTx+LRwJiHhVHhdh45SWow5u9lKNDROKu5AMzsIVPI29utH5FfT9vor8qMM6blxWWvlT22HUNdNMWqUQfQ==",
"requires": {}
},
"@opentelemetry/core": { "@opentelemetry/core": {
"version": "1.25.0", "version": "1.25.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.0.tgz", "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.25.0.tgz",
@@ -50032,6 +50382,54 @@
} }
} }
}, },
"@opentelemetry/exporter-otlp-http": {
"version": "0.26.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/exporter-otlp-http/-/exporter-otlp-http-0.26.0.tgz",
"integrity": "sha512-V3FcUEIVDZ66b3/6vjSBjwwozf/XV5eUXuELNzN8PAvGZH4mw36vaWlaxnGEV8HaZb2hbu2KbRpcOzqxx3tFDA==",
"requires": {
"@opentelemetry/api-metrics": "0.26.0",
"@opentelemetry/core": "1.0.0",
"@opentelemetry/resources": "1.0.0",
"@opentelemetry/sdk-metrics-base": "0.26.0",
"@opentelemetry/sdk-trace-base": "1.0.0"
},
"dependencies": {
"@opentelemetry/core": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.0.tgz",
"integrity": "sha512-1+qvKilADnSFW4PiXy+f7D22pvfGVxepZ69GcbF8cTcbQTUt7w63xEBWn5f5j92x9I3c0sqbW1RUx5/a4wgzxA==",
"requires": {
"@opentelemetry/semantic-conventions": "1.0.0",
"semver": "^7.3.5"
}
},
"@opentelemetry/resources": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.0.tgz",
"integrity": "sha512-ORP8F2LLcJEm5M3H24RmdlMdiDc70ySPushpkrAW34KZGdZXwkrFoFXZhhs5MUxPT+fLrTuBafXxZVr8eHtFuQ==",
"requires": {
"@opentelemetry/core": "1.0.0",
"@opentelemetry/semantic-conventions": "1.0.0"
}
},
"@opentelemetry/sdk-trace-base": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.0.0.tgz",
"integrity": "sha512-/rXoyQlDlJTJ4SOVAbP0Gpj89B8oZ2hJApYG2Dq5klkgFAtDifN8271TIzwtM8/ET8HUhgx9eyoUJi42LhIesg==",
"requires": {
"@opentelemetry/core": "1.0.0",
"@opentelemetry/resources": "1.0.0",
"@opentelemetry/semantic-conventions": "1.0.0",
"lodash.merge": "^4.6.2"
}
},
"@opentelemetry/semantic-conventions": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.0.tgz",
"integrity": "sha512-XCZ6ZSmc8FOspxKUU+Ow9UtJeSSRcS5rFBYGpjzix02U2v+X9ofjOjgNRnpvxlSvkccYIhdTuwcvNskmZ46SeA=="
}
}
},
"@opentelemetry/exporter-zipkin": { "@opentelemetry/exporter-zipkin": {
"version": "1.25.0", "version": "1.25.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.25.0.tgz", "resolved": "https://registry.npmjs.org/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.25.0.tgz",
@@ -50224,6 +50622,42 @@
} }
} }
}, },
"@opentelemetry/sdk-metrics-base": {
"version": "0.26.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics-base/-/sdk-metrics-base-0.26.0.tgz",
"integrity": "sha512-PbJsso7Vy/CLATAOyXbt/VP7ZQ2QYnvlq28lhOWaLPw8aqLogMBvidNGRrt7rF4/hfzLT6pMgpAAcit2C/nUMA==",
"requires": {
"@opentelemetry/api-metrics": "0.26.0",
"@opentelemetry/core": "1.0.0",
"@opentelemetry/resources": "1.0.0",
"lodash.merge": "^4.6.2"
},
"dependencies": {
"@opentelemetry/core": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.0.0.tgz",
"integrity": "sha512-1+qvKilADnSFW4PiXy+f7D22pvfGVxepZ69GcbF8cTcbQTUt7w63xEBWn5f5j92x9I3c0sqbW1RUx5/a4wgzxA==",
"requires": {
"@opentelemetry/semantic-conventions": "1.0.0",
"semver": "^7.3.5"
}
},
"@opentelemetry/resources": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.0.0.tgz",
"integrity": "sha512-ORP8F2LLcJEm5M3H24RmdlMdiDc70ySPushpkrAW34KZGdZXwkrFoFXZhhs5MUxPT+fLrTuBafXxZVr8eHtFuQ==",
"requires": {
"@opentelemetry/core": "1.0.0",
"@opentelemetry/semantic-conventions": "1.0.0"
}
},
"@opentelemetry/semantic-conventions": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.0.0.tgz",
"integrity": "sha512-XCZ6ZSmc8FOspxKUU+Ow9UtJeSSRcS5rFBYGpjzix02U2v+X9ofjOjgNRnpvxlSvkccYIhdTuwcvNskmZ46SeA=="
}
}
},
"@opentelemetry/sdk-trace-base": { "@opentelemetry/sdk-trace-base": {
"version": "1.25.0", "version": "1.25.0",
"resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.0.tgz", "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.25.0.tgz",
@@ -50439,8 +50873,87 @@
"@sentry/tracing": "7.73.0", "@sentry/tracing": "7.73.0",
"@sentry/types": "7.73.0", "@sentry/types": "7.73.0",
"@sentry/utils": "7.73.0" "@sentry/utils": "7.73.0"
},
"dependencies": {
"@sentry/tracing": {
"version": "7.73.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.73.0.tgz",
"integrity": "sha512-LOQR6Hkc8ZoflCXWtMlxTbCBEwv0MSOr3vesnRsmlFG8TW1YUIneU+wKnVxToWAZ8fq+6ubclnuIUKHfqTk/Tg==",
"requires": {
"@sentry-internal/tracing": "7.73.0"
}
}
} }
}, },
"@sentry/cli": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-2.32.2.tgz",
"integrity": "sha512-m/6Z3FWu+rTd8jepVlJPKQhvbT8vCjt0N7BSWZiEUVW/8mhwAYJiwO0b+Ch/u4IqbBg1dp3805q5TFPl4AdrNw==",
"dev": true,
"requires": {
"@sentry/cli-darwin": "2.32.2",
"@sentry/cli-linux-arm": "2.32.2",
"@sentry/cli-linux-arm64": "2.32.2",
"@sentry/cli-linux-i686": "2.32.2",
"@sentry/cli-linux-x64": "2.32.2",
"@sentry/cli-win32-i686": "2.32.2",
"@sentry/cli-win32-x64": "2.32.2",
"https-proxy-agent": "^5.0.0",
"node-fetch": "^2.6.7",
"progress": "^2.0.3",
"proxy-from-env": "^1.1.0",
"which": "^2.0.2"
}
},
"@sentry/cli-darwin": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-darwin/-/cli-darwin-2.32.2.tgz",
"integrity": "sha512-GDtePIavx3FKSRowdPdtIssahn46MfFFYNN+s7a9MjlhFwJtvC9A1bSDw7ksEtDaQolepUwmLPHaVe19y0T/zw==",
"dev": true,
"optional": true
},
"@sentry/cli-linux-arm": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm/-/cli-linux-arm-2.32.2.tgz",
"integrity": "sha512-u9s08wr8bDDqsAl6pk9iGGlOHtU+T8btU6voNKy71QzeIBpV9c8VVk/OnmP9aswp/ea4NY416yjnzcTvCrFKAw==",
"dev": true,
"optional": true
},
"@sentry/cli-linux-arm64": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-arm64/-/cli-linux-arm64-2.32.2.tgz",
"integrity": "sha512-VECLVC1rLyvXk6rTVUfmfs4vhANjMgm4BVKGlA3rydmf2PJw2/NfipH3KeyijdE2vEoyLri+/6HH883pP0iniQ==",
"dev": true,
"optional": true
},
"@sentry/cli-linux-i686": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-i686/-/cli-linux-i686-2.32.2.tgz",
"integrity": "sha512-XhofQz32OqLrQK1DEOsryhT7d29Df6VkccvxueGoIt2gpXEXtgRczsUwZjZqquDdkNCt+HPj9eUGcj8pY8JkmQ==",
"dev": true,
"optional": true
},
"@sentry/cli-linux-x64": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-linux-x64/-/cli-linux-x64-2.32.2.tgz",
"integrity": "sha512-anyng4Qqt7zX4ZY4IzDH1RJWAVZNBe6sUHcuciNy7giCU3B4/XnxAHlwYmBSN5txpaumsWdstPgRKEUJG6AOSA==",
"dev": true,
"optional": true
},
"@sentry/cli-win32-i686": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-i686/-/cli-win32-i686-2.32.2.tgz",
"integrity": "sha512-/auqx7QXG7F556fNK7vaB26pX7Far1CQMfI65iV4u/VWg6gV2WfvJWXB4iowhjqkYv56sZ+zOymLkEVF0R8wtg==",
"dev": true,
"optional": true
},
"@sentry/cli-win32-x64": {
"version": "2.32.2",
"resolved": "https://registry.npmjs.org/@sentry/cli-win32-x64/-/cli-win32-x64-2.32.2.tgz",
"integrity": "sha512-w7hW2sEWVYQquqdILBSFhcVW+HdoyLqVPPkLPAXRSLTwBnuni9nQEIdXr0h/7db+K3cm7PvWndp5ixVyswLHZA==",
"dev": true,
"optional": true
},
"@sentry/core": { "@sentry/core": {
"version": "7.73.0", "version": "7.73.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.73.0.tgz", "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.73.0.tgz",
@@ -50514,11 +51027,45 @@
} }
}, },
"@sentry/tracing": { "@sentry/tracing": {
"version": "7.73.0", "version": "7.114.0",
"resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.73.0.tgz", "resolved": "https://registry.npmjs.org/@sentry/tracing/-/tracing-7.114.0.tgz",
"integrity": "sha512-LOQR6Hkc8ZoflCXWtMlxTbCBEwv0MSOr3vesnRsmlFG8TW1YUIneU+wKnVxToWAZ8fq+6ubclnuIUKHfqTk/Tg==", "integrity": "sha512-eldEYGADReZ4jWdN5u35yxLUSTOvjsiZAYd4KBEpf+Ii65n7g/kYOKAjNl7tHbrEG1EsMW4nDPWStUMk1w+tfg==",
"requires": { "requires": {
"@sentry-internal/tracing": "7.73.0" "@sentry-internal/tracing": "7.114.0"
},
"dependencies": {
"@sentry-internal/tracing": {
"version": "7.114.0",
"resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.114.0.tgz",
"integrity": "sha512-dOuvfJN7G+3YqLlUY4HIjyWHaRP8vbOgF+OsE5w2l7ZEn1rMAaUbPntAR8AF9GBA6j2zWNoSo8e7GjbJxVofSg==",
"requires": {
"@sentry/core": "7.114.0",
"@sentry/types": "7.114.0",
"@sentry/utils": "7.114.0"
}
},
"@sentry/core": {
"version": "7.114.0",
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.114.0.tgz",
"integrity": "sha512-YnanVlmulkjgZiVZ9BfY9k6I082n+C+LbZo52MTvx3FY6RE5iyiPMpaOh67oXEZRWcYQEGm+bKruRxLVP6RlbA==",
"requires": {
"@sentry/types": "7.114.0",
"@sentry/utils": "7.114.0"
}
},
"@sentry/types": {
"version": "7.114.0",
"resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.114.0.tgz",
"integrity": "sha512-tsqkkyL3eJtptmPtT0m9W/bPLkU7ILY7nvwpi1hahA5jrM7ppoU0IMaQWAgTD+U3rzFH40IdXNBFb8Gnqcva4w=="
},
"@sentry/utils": {
"version": "7.114.0",
"resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.114.0.tgz",
"integrity": "sha512-319N90McVpupQ6vws4+tfCy/03AdtsU0MurIE4+W5cubHME08HtiEWlfacvAxX+yuKFhvdsO4K4BB/dj54ideg==",
"requires": {
"@sentry/types": "7.114.0"
}
}
} }
}, },
"@sentry/types": { "@sentry/types": {
+7 -2
View File
@@ -21,7 +21,9 @@
"docker:build": "docker build -t gabinetedigital:0.0.0.1 .", "docker:build": "docker build -t gabinetedigital:0.0.0.1 .",
"docker:publish": "docker run -p gabinetedigital:0.0.0.1", "docker:publish": "docker run -p gabinetedigital:0.0.0.1",
"build:oapr": "ionic cap build android --configuration oapr", "build:oapr": "ionic cap build android --configuration oapr",
"build:dev": "ionic cap build android --configuration dev" "build:dev": "ionic cap build android --configuration dev",
"sentry:releases": "sentry-cli releases new -p your-project-name $(git rev-parse HEAD) && sentry-cli releases set-commits --auto $(git rev-parse HEAD) && sentry-cli releases files $(git rev-parse HEAD) upload-sourcemaps ./www --rewrite && sentry-cli releases finalize $(git rev-parse HEAD)",
"build:sentry": "npm run build && npm run sentry:releases"
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
@@ -115,6 +117,7 @@
"@ngx-translate/core": "^13.0.0", "@ngx-translate/core": "^13.0.0",
"@ngxs/store": "^3.8.2", "@ngxs/store": "^3.8.2",
"@opentelemetry/exporter-metrics-otlp-http": "^0.52.1", "@opentelemetry/exporter-metrics-otlp-http": "^0.52.1",
"@opentelemetry/exporter-otlp-http": "^0.26.0",
"@opentelemetry/exporter-zipkin": "^1.25.0", "@opentelemetry/exporter-zipkin": "^1.25.0",
"@opentelemetry/resources": "^1.25.0", "@opentelemetry/resources": "^1.25.0",
"@opentelemetry/sdk-metrics": "^1.25.1", "@opentelemetry/sdk-metrics": "^1.25.1",
@@ -122,8 +125,9 @@
"@opentelemetry/sdk-trace-web": "^1.25.0", "@opentelemetry/sdk-trace-web": "^1.25.0",
"@opentelemetry/semantic-conventions": "^1.25.0", "@opentelemetry/semantic-conventions": "^1.25.0",
"@pdftron/pdfjs-express": "^8.0.1", "@pdftron/pdfjs-express": "^8.0.1",
"@sentry/angular": "7.73.0", "@sentry/angular": "^7.73.0",
"@sentry/capacitor": "^0.14.0", "@sentry/capacitor": "^0.14.0",
"@sentry/tracing": "^7.114.0",
"@teamhive/capacitor-video-recorder": "^5.0.0", "@teamhive/capacitor-video-recorder": "^5.0.0",
"@tinymce/tinymce-angular": "^4.2.4", "@tinymce/tinymce-angular": "^4.2.4",
"@types/jest-environment-puppeteer": "^5.0.3", "@types/jest-environment-puppeteer": "^5.0.3",
@@ -226,6 +230,7 @@
"@capacitor/cli": "^4.8.1", "@capacitor/cli": "^4.8.1",
"@ionic/angular-toolkit": "^6.1.0", "@ionic/angular-toolkit": "^6.1.0",
"@ionic/lab": "3.1.7", "@ionic/lab": "3.1.7",
"@sentry/cli": "^2.32.2",
"@types/core-js": "^2.5.7", "@types/core-js": "^2.5.7",
"@types/jasmine": "~3.6.0", "@types/jasmine": "~3.6.0",
"@types/jasminewd2": "~2.0.3", "@types/jasminewd2": "~2.0.3",
+3 -3
View File
@@ -119,9 +119,9 @@ import { FirebaseX } from '@ionic-native/firebase-x/ngx'; */
// We recommend adjusting this value in production. // We recommend adjusting this value in production.
tracesSampleRate: 1.0, tracesSampleRate: 1.0,
integrations: [ integrations: [
new BrowserTracing({ // new BrowserTracing({
tracingOrigins: ['localhost', 'https://gd-api.oapr.gov.ao/api/'], // tracingOrigins: ['localhost', 'https://gd-api.oapr.gov.ao/api/'],
}) as Integration, // }) as Integration,
] ]
}, },
// Forward the init method to the sibling Framework. // Forward the init method to the sibling Framework.
+7
View File
@@ -46,6 +46,7 @@ import { CalendarState, selectEventSource } from 'src/app/services/Repositorys/A
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
import { NotificationRepositoryService } from 'src/app/module/notification/data/notification-repository.service'; import { NotificationRepositoryService } from 'src/app/module/notification/data/notification-repository.service';
// import { Unsubscribable } from '../../../../android/app/build/intermediates/assets/debug/public/assets/dexie/dist/dexie'; // import { Unsubscribable } from '../../../../android/app/build/intermediates/assets/debug/public/assets/dexie/dist/dexie';
@Component({ @Component({
selector: 'app-agenda', selector: 'app-agenda',
templateUrl: './agenda.page.html', templateUrl: './agenda.page.html',
@@ -753,6 +754,12 @@ export class AgendaPage implements OnInit {
this.CalendarStore.removeRangeForCalendar(startTime, endTime, null , selectedCalendar.wxUserId as any) this.CalendarStore.removeRangeForCalendar(startTime, endTime, null , selectedCalendar.wxUserId as any)
let eventsList = response.value; let eventsList = response.value;
tracing.log('range', {
date: { startTime, endTime },
value: response.value
})
this.CalendarStore.pushEvent(eventsList, label, selectedCalendar.wxUserId); this.CalendarStore.pushEvent(eventsList, label, selectedCalendar.wxUserId);
this.listToPresent = this.CalendarStore.getEventsByCalendarIds(selectedCalendarIds) this.listToPresent = this.CalendarStore.getEventsByCalendarIds(selectedCalendarIds)
this.showTimelinePR = true; this.showTimelinePR = true;
@@ -0,0 +1,26 @@
import { Injectable } from "@angular/core";
import { v4 as uuidv4 } from 'uuid';
import { WebSocketGraylogService } from "../socket/socket";
import { Span } from "@opentelemetry/sdk-trace-web";
export class OpenTelemetryLogging {
socket = new WebSocketGraylogService()
constructor() {
this.socket.start()
}
send(data: Object & { type: string; payload: any, spanContext:any }): void {
this.socket.send({
type: data.type,
payload: data.payload,
requestId: uuidv4(),
spanContext: data.spanContext
});
}
}
export const openTelemetryLogging = new OpenTelemetryLogging()
@@ -1,6 +1,8 @@
import { metrics } from '@opentelemetry/api'; import { metrics } from '@opentelemetry/api';
import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http'; import { OTLPMetricExporter } from '@opentelemetry/exporter-metrics-otlp-http';
import { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics'; import { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk-metrics';
import { Subject } from 'rxjs';
import { throttleTime } from 'rxjs/operators';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
// Initialize OpenTelemetry metrics // Initialize OpenTelemetry metrics
@@ -10,15 +12,28 @@ metrics.setGlobalMeterProvider(meterProvider);
if (window.location.protocol !== 'https:' && environment.apiURL != 'https://gdqas-api.oapr.gov.ao/api/') { if (window.location.protocol !== 'https:' && environment.apiURL != 'https://gdqas-api.oapr.gov.ao/api/') {
const metricReader = new PeriodicExportingMetricReader({ const metricReader = new PeriodicExportingMetricReader({
exporter: new OTLPMetricExporter({ exporter: new OTLPMetricExporter({
url: 'http://5-180-182-151.cloud-xip.com:4318/v1/metrics', url: 'https://5-180-182-151.cloud-xip.com:85/collector2/v1/metrics',
// headers: { // headers: {
// 'Authorization': 'Basic ' + btoa('tabteste@006:tabteste@006'), // 'Authorization': 'Basic ' + btoa('tabteste@006:tabteste@006'),
// } // }
}), }),
exportIntervalMillis: 3000, exportIntervalMillis: 30000,
}); });
meterProvider.addMetricReader(metricReader); meterProvider.addMetricReader(metricReader);
const subject = new Subject()
subject
.pipe(
throttleTime(5000) // 5000 milliseconds = 5 seconds
)
.subscribe(() => {
metricReader.forceFlush().then(() => {
console.log('Metrics exported');
});
});
} }
export const meter = meterProvider.getMeter('example-exporter-collector'); export const meter = meterProvider.getMeter('example-exporter-collector');
export const RequestCounter = meter.createCounter('post_requests', { export const RequestCounter = meter.createCounter('post_requests', {
@@ -3,6 +3,8 @@ import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
import { ZipkinExporter } from '@opentelemetry/exporter-zipkin'; import { ZipkinExporter } from '@opentelemetry/exporter-zipkin';
import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions' import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'
import { Resource } from '@opentelemetry/resources'; import { Resource } from '@opentelemetry/resources';
import { OTLPTraceExporter } from '@opentelemetry/exporter-otlp-http';
import { context, trace, propagation } from '@opentelemetry/api';
function createProvider(serviceName) { function createProvider(serviceName) {
const provider = new WebTracerProvider({ const provider = new WebTracerProvider({
@@ -32,3 +34,54 @@ export const OpentelemetryAgendaProvider = createProvider('FO-agenda-service');
export const OpentelemetryNotificationProvider = createProvider('FO-notification'); export const OpentelemetryNotificationProvider = createProvider('FO-notification');
export const OpentelemetryInterceptorProvider = createProvider('FO-interceptor'); export const OpentelemetryInterceptorProvider = createProvider('FO-interceptor');
export const OpentelemetryPublicationProvider = createProvider('FO-publication-service'); export const OpentelemetryPublicationProvider = createProvider('FO-publication-service');
export const OpentelemetryLogging = createProvider('logging');
const tracerInstance = OpentelemetryAgendaProvider.getTracer('example-tracer-hole', '111', {})
function parentSpanExample() {
// Create a tracer instance
const tracer = trace.getTracer('FO-chat-service');
// Start a parent span
const parentSpan = tracer.startSpan('parent-span');
parentSpan.setAttribute('key', 'value')
const traceId = parentSpan.spanContext().traceId;
const spanId = parentSpan.spanContext().spanId;
parentSpan.end(); // End the parent span
const spanContext = {
traceId: traceId,
spanId: spanId,
traceFlags: 1 // 1 means the trace is sampled
};
// Create a new context with the parent span
const parentContext = trace.setSpan(context.active(), parentSpan);
const parentContext1 = trace.setSpan(context.active(), trace.wrapSpanContext(spanContext));
// Start a new child span
const childSpan = tracer.startSpan('child-span1', {root: false}, parentContext1);
childSpan.end();
// Simulate some work
setTimeout(() => {
childSpanExample(parentContext); // Pass the context to child span
}, 500);
}
function childSpanExample(parentContext) {
// Create a new child span with the parent context
const tracer = trace.getTracer('FO-chat-service');
const childSpan = tracer.startSpan('child-span', undefined, parentContext);
// Simulate some work
setTimeout(() => {
childSpan.end(); // End the child span
}, 500);
}
parentSpanExample()
@@ -1,11 +1,12 @@
import { v4 as uuidv4 } from 'uuid'; import { v4 as uuidv4 } from 'uuid';
import { SemanticAttributes } from '@opentelemetry/semantic-conventions'; import { SemanticAttributes } from '@opentelemetry/semantic-conventions';
import { Tracer, Span } from '@opentelemetry/sdk-trace-base'; import { Tracer, Span } from '@opentelemetry/sdk-trace-base';
import { OpentelemetryAgendaProvider, OpentelemetryInterceptorProvider, OpentelemetryNotificationProvider } from './opentelemetry'; import { OpentelemetryAgendaProvider, OpentelemetryInterceptorProvider, OpentelemetryLogging, OpentelemetryNotificationProvider } from './opentelemetry';
import { Device, DeviceInfo } from '@capacitor/device'; import { Device, DeviceInfo } from '@capacitor/device';
import { SessionStore } from 'src/app/store/session.service'; import { SessionStore } from 'src/app/store/session.service';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
import { UseCaseCounter } from './matrix'; import { UseCaseCounter } from './matrix';
import { openTelemetryLogging } from './logging';
// import { context, propagation } from '@opentelemetry/api'; // import { context, propagation } from '@opentelemetry/api';
const tracerInstance = OpentelemetryAgendaProvider.getTracer('example-tracer-hole', '111', {}) const tracerInstance = OpentelemetryAgendaProvider.getTracer('example-tracer-hole', '111', {})
@@ -18,6 +19,24 @@ Device.getInfo().then(e => {
device = e device = e
}); });
function convertAttributesToString(obj) {
const result = {};
for (const key in obj) {
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object' && obj[key] !== null) {
// Convert only the object attribute to string
result[key] = JSON.stringify(obj[key], null, 2);
} else {
// Convert primitive values to string
result[key] = String(obj[key]);
}
}
}
return result;
}
const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingType => { const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingType => {
const requestId = uuidv4() const requestId = uuidv4()
@@ -31,7 +50,6 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
} }
const span = _tracerInstance.startSpan(name); const span = _tracerInstance.startSpan(name);
let hasBug:Boolean
const data = { const data = {
event: {}, event: {},
@@ -64,6 +82,28 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
span.setAttribute('error', 'true') span.setAttribute('error', 'true')
} }
}, },
log(message: string, data: Object) {
const spanId = span.spanContext().spanId;
const _tracer = OpentelemetryLogging.getTracer('logging')
const spanContext = _tracer.startSpan(name)
data = convertAttributesToString(data)
openTelemetryLogging.send({
type: 'graylog',
spanContext,
payload: {
message: message,
object: {
...data,
spanId,
name,
user: SessionStore?.user?.FullName,
device_name: device?.name || device?.model,
commit_date: environment.version.lastCommitTime,
}
}
})
},
getAttribute: (key: string) => { getAttribute: (key: string) => {
return data.tags[key] return data.tags[key]
}, },
@@ -77,9 +117,7 @@ const createTracingInstance = ({bugPrint, name, module, autoFinish}): TracingTyp
console.error(name, data) console.error(name, data)
} }
}, },
bugFlag:() => { bugFlag:() => {},
hasBug = true
},
createSpan: (name, parent?: any) => { createSpan: (name, parent?: any) => {
return tracerInstance.startSpan(name, { root: false }, parent) as Span; return tracerInstance.startSpan(name, { root: false }, parent) as Span;
} }
@@ -177,7 +215,7 @@ export type TracingType = {
attributes: typeof SemanticAttributes; attributes: typeof SemanticAttributes;
// axios: (config?: AxiosRequestConfig) => AxiosInstance; // axios: (config?: AxiosRequestConfig) => AxiosInstance;
setStatus: (status: any) => void; setStatus: (status: any) => void;
//logEvent: (name: string, attributesOrStartTime?: AttributeValue | TimeInput) => void; log: (message: string, data: Object) => void;
addEvent: (context: string, message?: any, obj?: any) => void; addEvent: (context: string, message?: any, obj?: any) => void;
setAttribute: (key: string, value: string) => void; setAttribute: (key: string, value: string) => void;
getAttribute: (key: string) => string; getAttribute: (key: string) => string;
@@ -0,0 +1,59 @@
import { Injectable } from '@angular/core';
import { v4 as uuidv4 } from 'uuid';
@Injectable({
providedIn: 'root'
})
export class WebSocketGraylogService {
private adminSocketGlobal!: WebSocket;
connected = false
constructor() { }
connect(): void {
this.adminSocketGlobal = new WebSocket('wss://5-180-182-151.cloud-xip.com:85/ws/');
this.adminSocketGlobal.onopen = () => {
console.log('Admin WebSocket is open now.');
this.adminSocketGlobal.send("uuid");
this.connected = true
};
this.adminSocketGlobal.onmessage = async (event: MessageEvent) => {
// Handle incoming messages here
};
this.adminSocketGlobal.onclose = () => {
console.log('Admin WebSocket is closed now.');
this.connect();
};
this.adminSocketGlobal.onerror = (error: Event) => {
console.error('Admin WebSocket error:', error);
};
}
send(data: Object & { type: string; payload: Object , requestId: string, spanContext:any }): void {
if (this.adminSocketGlobal.readyState === WebSocket.OPEN) {
this.adminSocketGlobal.send(JSON.stringify({
type: data.type ,
payload: data.payload,
requestId: data.requestId,
parentSpan: {
traceId: data.spanContext.spanContext().traceId,
spanId: data.spanContext.spanContext().spanId,
}
}));
// data.spanContext.end()
} else {
console.warn('WebSocket is not open. Message not sent.');
}
}
start(): void {
this.connect();
}
}
@@ -821,7 +821,7 @@ import { Observable, of, Subject } from 'rxjs';
import { tap, switchMap, delay, map } from 'rxjs/operators'; import { tap, switchMap, delay, map } from 'rxjs/operators';
import { CropImagePage } from 'src/app/modals/crop-image/crop-image.page'; import { CropImagePage } from 'src/app/modals/crop-image/crop-image.page';
function shareResponse<T>(): MethodDecorator { function shareResponse(): MethodDecorator {
return function ( return function (
target: any, target: any,
propertyKey: string | symbol, propertyKey: string | symbol,
@@ -829,9 +829,9 @@ function shareResponse<T>(): MethodDecorator {
): PropertyDescriptor { ): PropertyDescriptor {
const originalMethod = descriptor.value; const originalMethod = descriptor.value;
descriptor.value = function (...args: any[]): Observable<T> { descriptor.value = function (...args: any[]) {
// Create a subject to broadcast the response // Create a subject to broadcast the response
const responseSubject = new Subject<T>(); const responseSubject = new Subject();
// Use switchMap to ensure only one subscription is active at a time // Use switchMap to ensure only one subscription is active at a time
return responseSubject.pipe( return responseSubject.pipe(
@@ -868,7 +868,7 @@ function shareResponse<T>(): MethodDecorator {
class ApiService { class ApiService {
private isExecuting = false; private isExecuting = false;
@shareResponse<number>() @shareResponse()
fetchData(): Observable<number> { fetchData(): Observable<number> {
// Simulate fetching data locally (replace it with your own data source) // Simulate fetching data locally (replace it with your own data source)
const localData: number[] = [1, 2, 3, 4, 5]; const localData: number[] = [1, 2, 3, 4, 5];
+6 -6
View File
@@ -1,11 +1,11 @@
export let versionData = { export let versionData = {
"shortSHA": "f80e49d53", "shortSHA": "ef7edb397",
"SHA": "f80e49d53340aff8e94ad36b4c44b1eae01cfb39", "SHA": "ef7edb39789dc7ede7052a36434d1d0cb7756ba2",
"branch": "feature/agenda-api-peter", "branch": "feature/agenda-api-peter",
"lastCommitAuthor": "'Peter Maquiran'", "lastCommitAuthor": "'Peter Maquiran'",
"lastCommitTime": "'Thu Jul 18 10:40:33 2024 +0100'", "lastCommitTime": "'Fri Jul 19 17:50:25 2024 +0100'",
"lastCommitMessage": "change build version", "lastCommitMessage": "fix bug",
"lastCommitNumber": "5875", "lastCommitNumber": "5876",
"changeStatus": "On branch feature/agenda-api-peter\nYour branch is ahead of 'origin/feature/agenda-api-peter' by 2 commits.\n (use \"git push\" to publish your local commits)\n\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tnew file: endpoints_documentation.md\n\tmodified: gabinete-digital-fo.code-workspace\n\tmodified: src/app/pages/gabinete-digital/despachos-pr/despacho-pr/despacho-pr.page.ts\n\tmodified: src/app/pages/gabinete-digital/despachos/despacho/despacho.page.ts\n\tmodified: src/app/pages/gabinete-digital/diplomas-assinar/diploma-assinar/diploma-assinar.page.ts\n\tmodified: src/app/pages/gabinete-digital/diplomas/diploma/diploma.page.ts\n\tmodified: src/app/pages/gabinete-digital/expediente/expediente-detail/expediente-detail.page.ts\n\tmodified: src/app/pages/gabinete-digital/viewer-attachment/viewer-attachment.page.ts\n\tmodified: src/app/services/task.service.ts\n\tmodified: src/app/shared/gabinete-digital/generic/task-details/task-details.page.html\n\tmodified: src/app/shared/popover/opts-expediente/opts-expediente.page.ts", "changeStatus": "On branch feature/agenda-api-peter\nYour branch is up to date with 'origin/feature/agenda-api-peter'.\n\nChanges to be committed:\n (use \"git restore --staged <file>...\" to unstage)\n\tmodified: gabinete-digital-fo.code-workspace\n\tmodified: package-lock.json\n\tmodified: package.json\n\tmodified: src/app/app.module.ts\n\tmodified: src/app/pages/agenda/agenda.page.ts\n\tnew file: src/app/services/monitoring/opentelemetry/logging.ts\n\tmodified: src/app/services/monitoring/opentelemetry/matrix.ts\n\tmodified: src/app/services/monitoring/opentelemetry/opentelemetry.ts\n\tmodified: src/app/services/monitoring/opentelemetry/tracer.ts\n\tnew file: src/app/services/monitoring/socket/socket.ts\n\tmodified: src/app/shared/publication/new-publication/new-publication.page.ts\n\tmodified: version/git-version.ts",
"changeAuthor": "peter.maquiran" "changeAuthor": "peter.maquiran"
} }