From 502f298a3a93a754538dba20cdf423fdc5755dc0 Mon Sep 17 00:00:00 2001 From: Simon Larsen Date: Sun, 12 Nov 2023 15:12:49 +0000 Subject: [PATCH] add authentication --- Examples/otel-dotnet/Program.cs | 10 +- Examples/otel-dotnet/README.md | 2 +- .../bin/Debug/net6.0/otel-dotnet.dll | Bin 13312 -> 13312 bytes .../bin/Debug/net6.0/otel-dotnet.pdb | Bin 21380 -> 21368 bytes .../obj/Debug/net6.0/otel-dotnet.dll | Bin 13312 -> 13312 bytes .../obj/Debug/net6.0/otel-dotnet.pdb | Bin 21380 -> 21368 bytes .../obj/staticwebassets.pack.sentinel | 9 ++ Ingestor/API/OTelIngest.ts | 113 +++++++++--------- OTelCollector/config.yaml | 12 +- Workers/Index.ts | 4 +- docker-compose.base.yml | 1 + 11 files changed, 86 insertions(+), 65 deletions(-) diff --git a/Examples/otel-dotnet/Program.cs b/Examples/otel-dotnet/Program.cs index 061a41aee2..a493b7490e 100644 --- a/Examples/otel-dotnet/Program.cs +++ b/Examples/otel-dotnet/Program.cs @@ -9,6 +9,8 @@ var builder = WebApplication.CreateBuilder(args); const string endpoint = "http://localhost:4317"; +Console.WriteLine($"Env var: {Environment.GetEnvironmentVariable("OTEL_EXPORTER_OTLP_HEADERS")?.ToString()}"); + // Logging. builder.Logging.ClearProviders(); @@ -34,7 +36,7 @@ builder.Logging.AddOpenTelemetry(logging => opt.Endpoint = new Uri(endpoint); // Set headers in OTLP exporter - opt.Headers = "oneuptime-service-token=0a00ebc0-7f39-11ee-ac8c-3fb43926b224"; + // opt.Headers = "oneuptime-service-token=0a00ebc0-7f39-11ee-ac8c-3fb43926b224"; } System.Console.WriteLine($"OTLP Exporter is using {opt.Protocol} protocol and endpoint {opt.Endpoint}"); @@ -55,7 +57,7 @@ builder.Services.AddOpenTelemetry() { opt.Endpoint = new Uri(endpoint); // Set headers in OTLP exporter - opt.Headers = "oneuptime-service-token=0a00ebc0-7f39-11ee-ac8c-3fb43926b224"; + // opt.Headers = "oneuptime-service-token=0a00ebc0-7f39-11ee-ac8c-3fb43926b224"; } @@ -85,7 +87,7 @@ builder.Services.AddOpenTelemetry() { opt.Endpoint = new Uri(endpoint); // Set headers in OTLP exporter - opt.Headers = "oneuptime-service-token=0a00ebc0-7f39-11ee-ac8c-3fb43926b224"; + // opt.Headers = "oneuptime-service-token=0a00ebc0-7f39-11ee-ac8c-3fb43926b224"; } System.Console.WriteLine($"OTLP Exporter is using {opt.Protocol} protocol and endpoint {opt.Endpoint}"); @@ -123,6 +125,8 @@ async Task SendGreeting(ILogger logger) // Add a tag to the Activity activity?.SetTag("greeting", "Hello World!"); + //log out env var + histogram.Record("Hello World!".Length); return $"Hello World! OpenTelemetry Trace: {Activity.Current?.Id}"; diff --git a/Examples/otel-dotnet/README.md b/Examples/otel-dotnet/README.md index 1e14d03dd3..d59073a953 100644 --- a/Examples/otel-dotnet/README.md +++ b/Examples/otel-dotnet/README.md @@ -5,5 +5,5 @@ Please use ```bash -dotnet run --urls=http://localhost:7856/ +export OTEL_EXPORTER_OTLP_HEADERS=x-oneuptime-service-token=0a00ebc0-7f39-11ee-ac8c-3fb43926b224 && dotnet run --urls=http://localhost:7856/ ``` \ No newline at end of file diff --git a/Examples/otel-dotnet/bin/Debug/net6.0/otel-dotnet.dll b/Examples/otel-dotnet/bin/Debug/net6.0/otel-dotnet.dll index a6f45c4a297633819b3a4b6f204f840d25c63ce8..84e60f16834249f0b75b2e904c25216f0f987c69 100644 GIT binary patch delta 4530 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 diff --git a/Examples/otel-dotnet/bin/Debug/net6.0/otel-dotnet.pdb b/Examples/otel-dotnet/bin/Debug/net6.0/otel-dotnet.pdb index 02b4d3abf584dd3c52a22a4e7999becba8dc282b..6ffc64c6fd9fa6a0912f92a6f92ed5b0b8aa48d5 100644 GIT binary patch delta 714 zcmY+CT}V@57{~w5yL0B*DqGB{h-0g16N=orkdkhUx>2_yPT55TvLGzf30kotG$($n zC9{KFMJat=1X9w4*u}0&h_FSm8@sWO3ok0Di@LJsSrGKT{D1Gq`TrlzIqy6EkbXU& z++cX!1Oi9o*J3D zy3*Yhm3_kJNF^!|gbm*)$o_I|9y&&&^RQz&>L(q=Xb*FnnP+yGex>80Im(K& zutD1~U|=tH8`g0%Toyt#oOW0RvvSEYztYGT%A?&T@C%v+als|QT|r*(LGVei#fUfr z9znf8Vv#mMLU3M?6G(x`vY@c9ycfgV2hog1?tMt&^o`Ei@CwcJ)DyR>Kh(qlHF1kF zEh@7}Gfyd(R_Rrm^wG6AWr>3Pzsc{g-gH*@$Vd@-HAFxvrK#~2{#>~F4|+?cCTp$J z6C&q-p2$uCZ~*O$4tp40TR} vZ&$g2FsLqNqp<+H=vb((G_=;)DEIOZUqqCF@5GTLEAMJ%=l4^kzD zwAHpzQug4bNQ^b+_;o4qpf*wjZ;A(%BE^|_DB^?py?L`Ue`e>sU-xnR z0hUMNUkrfu0~aoy0f6k2`qPCE-&2+TW2z^)FZOfUd?f=YIlpi^oB&8U=InwWPt7jf z%Pr~%@5$E4yaqymtc&b4DRS;P@+Zhjjq~5w?S?Odpzo{(aG5p-oh33}dFwImz`V7B zF`_K49yfH3Bh)n?Y=sEe;44Nb-!0993}gB{C@`*vP==a5Nc0$0V!sg*G8Bw!M9ZiW zKN9WmmZ-u?r6$@jwEjHzqm~R72TMbv`{(Yae&0ysTh?9=#OCTPW6ydzDy>p5?LNev zDiBxE1#K>?&xm7Z<%;1H=RaW;(i?=#HbxJ_WL#q0VJtJ=F;*Gt1WjUi7$F9iX@?mD zj1k5Rg9WrljF;B8Y`ps*-u&EwvJJ?9v(}WO~R5#FUk*}srs7=%+7b^c0Uf<1y zTZa3B9=;RZfpAi&K2~igng1z8H>Eavkf?`JGfP3@?A}%zNi|s;raw`5NHI+93OBYR qVH=h+NqT}{2OLF&jHCu&rvg6kDbNgE3Irf3S?QxuyXq~gl=ug2AembL diff --git a/Examples/otel-dotnet/obj/Debug/net6.0/otel-dotnet.dll b/Examples/otel-dotnet/obj/Debug/net6.0/otel-dotnet.dll index a6f45c4a297633819b3a4b6f204f840d25c63ce8..84e60f16834249f0b75b2e904c25216f0f987c69 100644 GIT binary patch delta 4530 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 diff --git a/Examples/otel-dotnet/obj/Debug/net6.0/otel-dotnet.pdb b/Examples/otel-dotnet/obj/Debug/net6.0/otel-dotnet.pdb index 02b4d3abf584dd3c52a22a4e7999becba8dc282b..6ffc64c6fd9fa6a0912f92a6f92ed5b0b8aa48d5 100644 GIT binary patch delta 714 zcmY+CT}V@57{~w5yL0B*DqGB{h-0g16N=orkdkhUx>2_yPT55TvLGzf30kotG$($n zC9{KFMJat=1X9w4*u}0&h_FSm8@sWO3ok0Di@LJsSrGKT{D1Gq`TrlzIqy6EkbXU& z++cX!1Oi9o*J3D zy3*Yhm3_kJNF^!|gbm*)$o_I|9y&&&^RQz&>L(q=Xb*FnnP+yGex>80Im(K& zutD1~U|=tH8`g0%Toyt#oOW0RvvSEYztYGT%A?&T@C%v+als|QT|r*(LGVei#fUfr z9znf8Vv#mMLU3M?6G(x`vY@c9ycfgV2hog1?tMt&^o`Ei@CwcJ)DyR>Kh(qlHF1kF zEh@7}Gfyd(R_Rrm^wG6AWr>3Pzsc{g-gH*@$Vd@-HAFxvrK#~2{#>~F4|+?cCTp$J z6C&q-p2$uCZ~*O$4tp40TR} vZ&$g2FsLqNqp<+H=vb((G_=;)DEIOZUqqCF@5GTLEAMJ%=l4^kzD zwAHpzQug4bNQ^b+_;o4qpf*wjZ;A(%BE^|_DB^?py?L`Ue`e>sU-xnR z0hUMNUkrfu0~aoy0f6k2`qPCE-&2+TW2z^)FZOfUd?f=YIlpi^oB&8U=InwWPt7jf z%Pr~%@5$E4yaqymtc&b4DRS;P@+Zhjjq~5w?S?Odpzo{(aG5p-oh33}dFwImz`V7B zF`_K49yfH3Bh)n?Y=sEe;44Nb-!0993}gB{C@`*vP==a5Nc0$0V!sg*G8Bw!M9ZiW zKN9WmmZ-u?r6$@jwEjHzqm~R72TMbv`{(Yae&0ysTh?9=#OCTPW6ydzDy>p5?LNev zDiBxE1#K>?&xm7Z<%;1H=RaW;(i?=#HbxJ_WL#q0VJtJ=F;*Gt1WjUi7$F9iX@?mD zj1k5Rg9WrljF;B8Y`ps*-u&EwvJJ?9v(}WO~R5#FUk*}srs7=%+7b^c0Uf<1y zTZa3B9=;RZfpAi&K2~igng1z8H>Eavkf?`JGfP3@?A}%zNi|s;raw`5NHI+93OBYR qVH=h+NqT}{2OLF&jHCu&rvg6kDbNgE3Irf3S?QxuyXq~gl=ug2AembL diff --git a/Examples/otel-dotnet/obj/staticwebassets.pack.sentinel b/Examples/otel-dotnet/obj/staticwebassets.pack.sentinel index 81879adc5b..60528ee3e6 100644 --- a/Examples/otel-dotnet/obj/staticwebassets.pack.sentinel +++ b/Examples/otel-dotnet/obj/staticwebassets.pack.sentinel @@ -20,3 +20,12 @@ 2.0 2.0 2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 +2.0 diff --git a/Ingestor/API/OTelIngest.ts b/Ingestor/API/OTelIngest.ts index 6ba7a0700d..b148d0061f 100644 --- a/Ingestor/API/OTelIngest.ts +++ b/Ingestor/API/OTelIngest.ts @@ -22,9 +22,9 @@ import LogService from 'CommonServer/Services/LogService'; import ObjectID from 'Common/Types/ObjectID'; import { JSONArray, JSONObject } from 'Common/Types/JSON'; import OTelIngestService from '../Service/OTelIngest'; -// import GlobalCache from 'CommonServer/Infrastructure/GlobalCache'; -// import ServiceService from 'CommonServer/Services/ServiceService'; -// import Service from 'Model/Models/Service'; +import GlobalCache from 'CommonServer/Infrastructure/GlobalCache'; +import ServiceService from 'CommonServer/Services/ServiceService'; +import Service from 'Model/Models/Service'; // Load proto file for OTel @@ -72,63 +72,66 @@ router.use( // check header. - // if (!req.headers['oneuptime-service-token']) { - // throw new BadRequestException( - // 'Missing header: oneuptime-service-token' - // ); - // } + const serviceTokenInHeader: string | undefined = req.headers['x-oneuptime-service-token'] as string | undefined; - // const cachedServiceId: string | null = await GlobalCache.getString( - // 'service-token', - // req.headers['oneuptime-service-token'] as string - // ); - // const serviceProjectId: string | null = await GlobalCache.getString( - // 'service-project-id', - // req.headers['oneuptime-service-token'] as string - // ); - // if (!cachedServiceId || !serviceProjectId) { - // // load from the database and set the cache. - // const service: Service | null = await ServiceService.findOneBy({ - // query: { - // serviceToken: new ObjectID( - // req.headers['oneuptime-service-token'] as string - // ), - // }, - // select: { - // _id: true, - // projectId: true, - // }, - // props: { - // isRoot: true, - // }, - // }); + if (!serviceTokenInHeader) { + throw new BadRequestException( + 'Missing header: oneuptime-service-token' + ); + } - // if (!service) { - // throw new BadRequestException('Invalid service token'); - // } + const cachedServiceId: string | null = await GlobalCache.getString( + 'service-token', + serviceTokenInHeader as string + ); + const serviceProjectId: string | null = await GlobalCache.getString( + 'service-project-id', + serviceTokenInHeader as string + ); - // await GlobalCache.setString( - // 'service-token', - // req.headers['oneuptime-service-token'] as string, - // service._id?.toString() as string - // ); - // await GlobalCache.setString( - // 'service-project-id', - // req.headers['oneuptime-service-token'] as string, - // service.projectId?.toString() as string - // ); + if (!cachedServiceId || !serviceProjectId) { + // load from the database and set the cache. + const service: Service | null = await ServiceService.findOneBy({ + query: { + serviceToken: new ObjectID( + serviceTokenInHeader as string + ), + }, + select: { + _id: true, + projectId: true, + }, + props: { + isRoot: true, + }, + }); - // (req as OtelRequest).serviceId = service.id as ObjectID; - // (req as OtelRequest).projectId = service.projectId as ObjectID; - // } + if (!service) { + throw new BadRequestException('Invalid service token'); + } - // (req as OtelRequest).serviceId = ObjectID.fromString( - // cachedServiceId as string - // ); - // (req as OtelRequest).projectId = ObjectID.fromString( - // serviceProjectId as string - // ); + await GlobalCache.setString( + 'service-token', + serviceTokenInHeader as string, + service._id?.toString() as string + ); + await GlobalCache.setString( + 'service-project-id', + serviceTokenInHeader as string, + service.projectId?.toString() as string + ); + + (req as OtelRequest).serviceId = service.id as ObjectID; + (req as OtelRequest).projectId = service.projectId as ObjectID; + } + + (req as OtelRequest).serviceId = ObjectID.fromString( + cachedServiceId as string + ); + (req as OtelRequest).projectId = ObjectID.fromString( + serviceProjectId as string + ); next(); } catch (err) { @@ -456,8 +459,6 @@ router.post( ): Promise => { try { - debugger; - logger.info('OTel Ingestor API called'); req.body = req.body.toJSON(); diff --git a/OTelCollector/config.yaml b/OTelCollector/config.yaml index adfdc57583..65c2e8cd4d 100644 --- a/OTelCollector/config.yaml +++ b/OTelCollector/config.yaml @@ -1,9 +1,9 @@ extensions: headers_setter: headers: - - action: insert - key: oneuptime-service-token - from_context: oneuptime-service-token + - action: upsert + key: x-oneuptime-service-token + from_context: x-oneuptime-service-token processors: @@ -11,6 +11,7 @@ receivers: otlp: protocols: grpc: + include_metadata: true http: include_metadata: true @@ -20,8 +21,13 @@ exporters: otlphttp: endpoint: "http://ingestor:3400/otel" headers: {"Content-Type": "application/json"} + auth: + authenticator: headers_setter service: + telemetry: + logs: + level: "debug" extensions: [ headers_setter ] pipelines: traces: diff --git a/Workers/Index.ts b/Workers/Index.ts index 2b9e488694..f25d191c77 100644 --- a/Workers/Index.ts +++ b/Workers/Index.ts @@ -72,7 +72,7 @@ import './Jobs/UserOnCallLog/TimeoutStuckExecutions'; import './Jobs/IncomingRequestMonitor/CheckHeartbeat'; import { ClickhouseAppInstance } from 'CommonServer/Infrastructure/ClickhouseDatabase'; -// import AnalyticsTableManagement from './Utils/AnalyticsDatabase/TableManegement'; +import AnalyticsTableManagement from './Utils/AnalyticsDatabase/TableManegement'; import './Jobs/Workflow/TimeoutJobs'; @@ -102,7 +102,7 @@ const init: () => Promise = async (): Promise => { await RunDatabaseMigrations(); // create tables in analytics database - // await AnalyticsTableManagement.createTables(); + await AnalyticsTableManagement.createTables(); // Job process. QueueWorker.getWorker( diff --git a/docker-compose.base.yml b/docker-compose.base.yml index 917046b08e..86188dc72a 100644 --- a/docker-compose.base.yml +++ b/docker-compose.base.yml @@ -365,6 +365,7 @@ services: restart: always ports: - '4317:4317' + - '4318:4318' ingestor: