Skip to content

Commit 3df9fae

Browse files
Adnan Rahićxoscarjfermi
authored
docs(getting started): trace ingestion dotnet, browser (#4052)
* docs(getstarted): add dotnet * docs(getstarted): add browser * updating the browser example to use the tracetest sdk * updating dependency * Update examples/getting-started/browser/README.md Co-authored-by: Julianne Fermi <[email protected]> --------- Co-authored-by: Oscar Reyes <[email protected]> Co-authored-by: Julianne Fermi <[email protected]>
1 parent 2072feb commit 3df9fae

File tree

59 files changed

+23788
-9
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+23788
-9
lines changed

docs/docs/getting-started/configure-trace-ingestion.mdx

Lines changed: 83 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,54 @@ java -javaagent:opentelemetry-javaagent.jar -jar /path/to/app.jar
350350
[Visit the example in GitHub, here.](https://github.com/kubeshop/tracetest/tree/main/examples/getting-started/java)
351351
:::
352352

353+
</TabItem>
354+
<TabItem value="dotnet" label=".NET">
355+
356+
1. Add Dependencies
357+
358+
```bash title="Terminal"
359+
dotnet add package OpenTelemetry
360+
dotnet add package OpenTelemetry.Extensions.Hosting
361+
dotnet add package OpenTelemetry.Exporter.OpenTelemetryProtocol
362+
dotnet add package OpenTelemetry.Instrumentation.AspNetCore
363+
dotnet add package OpenTelemetry.Instrumentation.Http
364+
```
365+
366+
2. Initialize Tracing
367+
368+
```csharp title="Program.cs"
369+
// Import OpenTelemetry SDK
370+
using OpenTelemetry.Trace;
371+
var builder = WebApplication.CreateBuilder(args);
372+
builder.Services.AddControllers();
373+
// Configure OpenTelemetry Tracing
374+
builder.Services.AddOpenTelemetry().WithTracing(builder =>
375+
{
376+
builder
377+
// Configure ASP.NET Core Instrumentation
378+
.AddAspNetCoreInstrumentation()
379+
// Configure HTTP Client Instrumentation
380+
.AddHttpClientInstrumentation()
381+
// Configure OpenTelemetry Protocol (OTLP) Exporter
382+
.AddOtlpExporter();
383+
});
384+
```
385+
386+
3. Configure and Run
387+
388+
```bash title="Terminal"
389+
export OTEL_SERVICE_NAME=my-service-name
390+
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
391+
export OTEL_EXPORTER_OTLP_ENDPOINT="http://<tracetest-agent>:4318"
392+
# export OTEL_EXPORTER_OTLP_HEADERS="x-tracetest-token=<token>"
393+
394+
dotnet run
395+
```
396+
397+
:::note View a code sample
398+
[Visit the example in GitHub, here.](https://github.com/kubeshop/tracetest/tree/main/examples/getting-started/dotnet)
399+
:::
400+
353401
</TabItem>
354402
<TabItem value="ruby" label="Ruby">
355403

@@ -379,7 +427,7 @@ end
379427
export OTEL_SERVICE_NAME=my-service-name
380428
export OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
381429
export OTEL_EXPORTER_OTLP_ENDPOINT="http://<tracetest-agent>:4318"
382-
export OTEL_EXPORTER_OTLP_HEADERS="x-tracetest-token=<token>"
430+
# export OTEL_EXPORTER_OTLP_HEADERS="x-tracetest-token=<token>"
383431

384432
rails server -p 8080
385433
```
@@ -388,6 +436,40 @@ rails server -p 8080
388436
[Visit the example in GitHub, here.](https://github.com/kubeshop/tracetest/tree/main/examples/getting-started/ruby)
389437
:::
390438

439+
</TabItem>
440+
<TabItem value="browser" label="Browser">
441+
442+
1. Install the Tracetest Web SDK
443+
444+
```bash title="Terminal"
445+
npm i @tracetest/opentelemetry-web
446+
```
447+
448+
2. Initialize Tracing
449+
450+
```js title="instrumentation.js"
451+
import TracetestWebSDK from "@tracetest/opentelemetry-web";
452+
453+
const sdk = new TracetestWebSDK({
454+
serviceName: "browser-app",
455+
endpoint: "http://<tracetest-agent>:4318/v1/traces",
456+
});
457+
458+
sdk.start();
459+
```
460+
461+
Load the `instrumentation.js` at the top of your browser app's header or `index.js` entrypoint file.
462+
463+
```js title="index.js"
464+
import "./instrumentation";
465+
466+
// rest of the app's entrypoint code
467+
```
468+
469+
:::note View a code sample
470+
[Visit the example in GitHub, here.](https://github.com/kubeshop/tracetest/tree/main/examples/getting-started/browser)
471+
:::
472+
391473
</TabItem>
392474
<TabItem value="docker" label="Docker">
393475

@@ -574,13 +656,6 @@ service:
574656
exporters: [otlp/tracetest] # your exporter pointing to the Tracetest OTLP endpoint
575657
```
576658

577-
</TabItem>
578-
<TabItem value="more" label="More...">
579-
580-
Using other programming languages? More guides are coming soon.
581-
582-
Until then, check out our reference for getting started with OpenTelemetry below!
583-
584659
</TabItem>
585660
</Tabs>
586661

docs/docusaurus.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ const config = {
259259
prism: {
260260
theme: lightCodeTheme,
261261
darkTheme: darkCodeTheme,
262-
additionalLanguages: ["bash", "ruby"],
262+
additionalLanguages: ["bash", "ruby", "csharp"],
263263
},
264264
algolia: {
265265
// The application ID provided by Algolia
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2+
3+
# dependencies
4+
/node_modules
5+
/.pnp
6+
.pnp.js
7+
8+
# testing
9+
/coverage
10+
11+
# production
12+
/build
13+
14+
# misc
15+
.DS_Store
16+
.env.local
17+
.env.development.local
18+
.env.test.local
19+
.env.production.local
20+
21+
npm-debug.log*
22+
yarn-debug.log*
23+
yarn-error.log*
24+
node_modules/
25+
/test-results/
26+
/playwright-report/
27+
/blob-report/
28+
/playwright/.cache/
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Step-by-step
2+
3+
1. Install Dependencies
4+
5+
```bash
6+
npm i @opentelemetry/core \
7+
@opentelemetry/sdk-trace-web \
8+
@opentelemetry/sdk-trace-base \
9+
@opentelemetry/instrumentation \
10+
@opentelemetry/exporter-trace-otlp-http \
11+
@opentelemetry/context-zone \
12+
@tracetest/instrumentation-user-interaction \
13+
@opentelemetry/auto-instrumentations-web \
14+
@opentelemetry/resources
15+
```
16+
17+
2. Initialize Tracing
18+
19+
`instrumentation.js`
20+
21+
```js
22+
import { CompositePropagator, W3CBaggagePropagator, W3CTraceContextPropagator } from "@opentelemetry/core";
23+
import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
24+
import { BatchSpanProcessor } from "@opentelemetry/sdk-trace-base";
25+
import { registerInstrumentations } from "@opentelemetry/instrumentation";
26+
import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
27+
import { ZoneContextManager } from "@opentelemetry/context-zone";
28+
import { UserInteractionInstrumentation } from "@tracetest/instrumentation-user-interaction";
29+
import { getWebAutoInstrumentations } from "@opentelemetry/auto-instrumentations-web";
30+
import { Resource } from "@opentelemetry/resources";
31+
32+
const provider = new WebTracerProvider({
33+
resource: new Resource({
34+
"service.name": "browser-app",
35+
}),
36+
});
37+
38+
provider.addSpanProcessor(
39+
new BatchSpanProcessor(new OTLPTraceExporter({ url: "http://localhost:4318/v1/traces" }), {
40+
maxQueueSize: 10000,
41+
scheduledDelayMillis: 200,
42+
})
43+
);
44+
45+
provider.register({
46+
contextManager: new ZoneContextManager(),
47+
propagator: new CompositePropagator({
48+
propagators: [new W3CBaggagePropagator(), new W3CTraceContextPropagator()],
49+
}),
50+
});
51+
52+
registerInstrumentations({
53+
tracerProvider: provider,
54+
instrumentations: [
55+
new UserInteractionInstrumentation(),
56+
getWebAutoInstrumentations({
57+
"@opentelemetry/instrumentation-fetch": {
58+
propagateTraceHeaderCorsUrls: /.*/,
59+
clearTimingResources: true,
60+
},
61+
"@opentelemetry/instrumentation-user-interaction": {
62+
enabled: false,
63+
},
64+
}),
65+
],
66+
});
67+
```
68+
69+
`index.js` or entrypoint file
70+
71+
```js
72+
import "./instrumentation";
73+
// rest of the app's entrypoint code
74+
```

0 commit comments

Comments
 (0)