Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions docs/DC/3D/Guides/Installation/Windows/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ description: Install DeepCube™ on Windows, through Steam or the offline MS

# Installing on Windows

!!! note "Requirements"
Windows 11, 64-bit. See [Supported Configurations](../../../Supported-Configurations/index.md) for full details.

## Steam

[Open in Steam :material-steam:](steam://store/3624760){ .md-button .md-button--primary }
Expand Down
2 changes: 1 addition & 1 deletion docs/DC/3D/Guides/Preferences/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ client: [contact support](../../../../contact.md) and say which GPU you have.

!!! info "Minimum requirements"
On Windows, the client needs at least a DirectX 12 capable GPU with 3 GB of memory,
on 64-bit Windows 10, and 8 GB is recommended. Below the minimum, lowering these
on 64-bit Windows 11, and 8 GB is recommended. Below the minimum, lowering these
settings may not be enough. The full list, including experimental macOS support, is
on [Supported Configurations](../../Supported-Configurations/index.md).

Expand Down
2 changes: 1 addition & 1 deletion docs/DC/3D/Supported-Configurations/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ DeepCube runs on Windows, with experimental support for macOS. Linux support is

| Component | Minimum | Recommended |
|-----------|---------|-------------|
| **Operating System** | Windows 10 64-bit | Windows 11 64-bit (latest) |
| **Operating System** | Windows 11 64-bit | Windows 11 64-bit (latest) |
| **Processor** | 4 cores, 3.0 GHz | 6 cores, 3.5 GHz |
| **Graphics** | DirectX 12, 3 GB VRAM | DirectX 12, 8 GB VRAM |
| **Memory** | 8 GB RAM | 32 GB RAM |
Expand Down
2 changes: 1 addition & 1 deletion docs/DC/Studio/Guides/Installation/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ A subscription is required to use DeepCube Studio.
5. Select a grid to connect to

!!! note "Requirements"
Windows 10 or later (64-bit). See [Supported Configurations](../../Supported-Configurations/index.md) for full details.
Windows 11 (64-bit). See [Supported Configurations](../../Supported-Configurations/index.md) for full details.

## macOS

Expand Down
2 changes: 1 addition & 1 deletion docs/DC/Studio/Supported-Configurations/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ DeepCube Studio is a lightweight native desktop application. It does not require

| Component | Requirement |
|-----------|-------------|
| **Operating System** | Windows 10 64-bit or later |
| **Operating System** | Windows 11 64-bit |
| **Processor** | 2 cores, 2.0 GHz or faster |
| **Memory** | 4 GB RAM |
| **Storage** | 500 MB available |
Expand Down
2 changes: 1 addition & 1 deletion docs/DC/Web/Troubleshooting/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ CORS (Cross-Origin Resource Sharing) errors occur when your instrumented applica
|---------|-------|------------|
| `Access-Control-Allow-Origin` error in browser console | Browser-based exporter sending directly to DeepCube endpoint | Browser-based (front-end) applications should route telemetry through a backend collector or proxy rather than sending directly to the DeepCube endpoint. |
| CORS error only in production | Different origin in production vs development | Verify that your production domain is configured correctly in your collector setup. |
| Preflight (OPTIONS) request fails | Firewall or proxy blocking OPTIONS requests | Ensure your network infrastructure allows HTTP OPTIONS requests to the DeepCube ingestion endpoint. |
| Preflight (OPTIONS) request fails | Browser-based exporter sending directly to DeepCube endpoint | DeepCube does not accept telemetry from the browser directly. Route it through a backend OpenTelemetry Collector. |

!!! warning "Browser instrumentation"
Sending telemetry directly from browser JavaScript to the DeepCube endpoint will trigger CORS errors. Use a backend OpenTelemetry Collector as a relay to avoid this issue.
Expand Down
10 changes: 6 additions & 4 deletions docs/Getting-Started/Plans/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,13 +23,15 @@ each plan does.
| **Data Retention** | 7 days | 30 days | 90 days | 365 days |
| **AI (Tessa)** | 7 queries/day | 35 queries/day | Large daily budget + Code Fix | Large daily budget + Code Fix + Infra |
| **Support** | Discord | Chat/Email | Chat/Email/Phone | Chat/Email/Phone |
| **Uptime SLA** | - | 99% | 99.9% | 99.99% |
| **Availability target** | None | 99% | 99.9% | 99.99% |
| **Dedicated Success Rep** | :material-close: | :material-close: | :material-check: | :material-check: |
| **Professional Consulting** | :material-close: | :material-close: | :material-check: | :material-check: |
| **Early Access Features** | :material-close: | :material-close: | :material-close: | :material-check: |

*Throughput = traces + logs per second*

*Availability targets are not a service level agreement. Visualize is the one exception: its contractual commitment is 99.0%, with service credits. Your subscription terms are in the [Subscription Agreement](https://immersivefusion.com/legal/){ target="_blank" }.*

*AI (Tessa) usage is a daily budget that scales with your monitored nodes, not an unlimited allowance. No plan is ever blocked: when a budget is spent, Tessa keeps working with lighter, faster responses until it refills.*

## Plan Details
Expand All @@ -50,7 +52,7 @@ Experience application immersion with zero risk, allowing you to gain valuable i
Enhance your application immersion capabilities with expanded availability and comprehensive support.

- Shared infrastructure
- 99% uptime SLA
- 99% availability target; the contractual commitment is 99.0%, with service credits
- 200 traces + logs per second
- 30 days data retention
- 35 AI Assistant queries per day
Expand All @@ -61,7 +63,7 @@ Enhance your application immersion capabilities with expanded availability and c
Improve your application visualization capabilities by incorporating historical data retention and dedicated resources.

- Dedicated infrastructure
- 99.9% uptime SLA
- 99.9% availability target
- 1,000 traces + logs per second
- 90 days data retention
- Large daily AI Assistant budget + Code Fix
Expand All @@ -74,7 +76,7 @@ Improve your application visualization capabilities by incorporating historical
Elevate your application monitoring and management with the stability, scalability, and expertise.

- Dedicated infrastructure
- 99.99% uptime SLA
- 99.99% availability target
- 2,000 traces + logs per second
- 365 days data retention
- Large daily AI Assistant budget + Code Fix + Infra
Expand Down
3 changes: 2 additions & 1 deletion docs/Instrument/collector/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ service:
| Exporter | Description |
|----------|-------------|
| `otlp` | Exports via OTLP gRPC |
| `otlphttp` | Exports via OTLP HTTP |
| `otlphttp` | Exports via OTLP HTTP. Not accepted by DeepCube; use `otlp` |
| `debug` | Prints telemetry to stdout (for development) |

## Docker Compose Example
Expand Down Expand Up @@ -202,6 +202,7 @@ services:
build: .
environment:
- OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4317
- OTEL_EXPORTER_OTLP_PROTOCOL=grpc
- OTEL_SERVICE_NAME=my-app
depends_on:
- otel-collector
Expand Down
2 changes: 1 addition & 1 deletion docs/Instrument/dotnet/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ Instead of hardcoding values, use environment variables. The OpenTelemetry .NET
| `OTEL_EXPORTER_OTLP_ENDPOINT` | `https://otlp.deepcube.ai` | OTLP collector endpoint |
| `OTEL_EXPORTER_OTLP_HEADERS` | `api-key=YOUR-API-KEY` | Authentication header |
| `OTEL_SERVICE_NAME` | `your-service-name` | Service name shown in DeepCube |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (grpc or http/protobuf) |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (must be `grpc`) |

When using environment variables, your code simplifies to:

Expand Down
4 changes: 3 additions & 1 deletion docs/Instrument/go/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,7 @@ The OpenTelemetry Go SDK reads these variables when using the autoconfigure opti
| `OTEL_EXPORTER_OTLP_ENDPOINT` | `https://otlp.deepcube.ai` | OTLP collector endpoint |
| `OTEL_EXPORTER_OTLP_HEADERS` | `api-key=YOUR-API-KEY` | Authentication header |
| `OTEL_SERVICE_NAME` | `your-service-name` | Service name shown in DeepCube |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (grpc or http/protobuf) |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (must be `grpc`) |

!!! note "Environment variables in Go"
Unlike some other language SDKs, the Go SDK does not automatically read `OTEL_EXPORTER_OTLP_ENDPOINT` by default. You need to either configure the exporter programmatically (as shown above) or use the `autoexport` package:
Expand All @@ -302,6 +302,8 @@ The OpenTelemetry Go SDK reads these variables when using the autoconfigure opti
go get go.opentelemetry.io/contrib/exporters/autoexport
```

`autoexport` defaults to `http/protobuf`, so set `OTEL_EXPORTER_OTLP_PROTOCOL=grpc` when you use it.

## Verify It's Working

1. Run your instrumented application
Expand Down
6 changes: 5 additions & 1 deletion docs/Instrument/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ All you need is your **OTLP endpoint** and **API key**:
| Setting | Value |
|---------|-------|
| **Endpoint** | `https://otlp.deepcube.ai` |
| **Protocol** | `grpc` (default) or `http/protobuf` |
| **Protocol** | `grpc` |
| **API Key Header** | `api-key: YOUR-API-KEY` |

DeepCube accepts OTLP over gRPC only. OTLP over HTTP (`http/protobuf`) is not accepted, and exports that use it fail.

Get your API key by logging in at [portal.deepcube.ai](https://portal.deepcube.ai){ target="_blank" }, then go to **Administration > Grids** and click **Instrument** on your Grid.

### Environment Variables
Expand All @@ -24,6 +26,7 @@ The fastest way to configure any OpenTelemetry SDK is with environment variables
|----------|-------|-------------|
| `OTEL_EXPORTER_OTLP_ENDPOINT` | `https://otlp.deepcube.ai` | OTLP collector endpoint |
| `OTEL_EXPORTER_OTLP_HEADERS` | `api-key=YOUR-API-KEY` | Authentication header |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (must be `grpc`; some SDKs default to `http/protobuf`) |
| `OTEL_SERVICE_NAME` | `your-service-name` | Identifies your service in DeepCube |

## Quick Start by Language
Expand Down Expand Up @@ -64,6 +67,7 @@ Choose your language to see the minimal configuration needed to start sending te
# Run your application with auto-instrumentation
java -javaagent:opentelemetry-javaagent.jar \
-Dotel.exporter.otlp.endpoint=https://otlp.deepcube.ai \
-Dotel.exporter.otlp.protocol=grpc \
-Dotel.exporter.otlp.headers=api-key=YOUR-API-KEY \
-Dotel.service.name=your-service-name \
-jar your-app.jar
Expand Down
9 changes: 8 additions & 1 deletion docs/Instrument/java/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,15 @@ curl -L -o opentelemetry-javaagent.jar \
```bash
java -javaagent:opentelemetry-javaagent.jar \
-Dotel.exporter.otlp.endpoint=https://otlp.deepcube.ai \
-Dotel.exporter.otlp.protocol=grpc \
-Dotel.exporter.otlp.headers=api-key=YOUR-API-KEY \
-Dotel.service.name=my-java-app \
-jar your-application.jar
```

!!! warning "Keep the protocol set to gRPC"
Versions 2.0 and later of the Java agent and the Spring Boot starter default to `http/protobuf`, which DeepCube does not accept. Set the protocol to `grpc` wherever you configure them.

The agent automatically instruments:

- Spring Web MVC, WebFlux
Expand Down Expand Up @@ -81,6 +85,7 @@ otel:
exporter:
otlp:
endpoint: https://otlp.deepcube.ai
protocol: grpc
headers:
api-key: YOUR-API-KEY
service:
Expand All @@ -91,6 +96,7 @@ Or in `application.properties`:

```properties
otel.exporter.otlp.endpoint=https://otlp.deepcube.ai
otel.exporter.otlp.protocol=grpc
otel.exporter.otlp.headers.api-key=YOUR-API-KEY
otel.service.name=my-spring-boot-app
```
Expand Down Expand Up @@ -253,7 +259,7 @@ The Java agent and SDK autoconfigure module read these variables:
| `OTEL_EXPORTER_OTLP_ENDPOINT` | `https://otlp.deepcube.ai` | OTLP collector endpoint |
| `OTEL_EXPORTER_OTLP_HEADERS` | `api-key=YOUR-API-KEY` | Authentication header |
| `OTEL_SERVICE_NAME` | `your-service-name` | Service name shown in DeepCube |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (grpc or http/protobuf) |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (must be `grpc`) |
| `OTEL_TRACES_EXPORTER` | `otlp` | Trace exporter type |
| `OTEL_METRICS_EXPORTER` | `otlp` | Metrics exporter type |
| `OTEL_LOGS_EXPORTER` | `otlp` | Logs exporter type |
Expand All @@ -263,6 +269,7 @@ You can also use JVM system properties (prefix with `-D` and replace underscores
```bash
java -javaagent:opentelemetry-javaagent.jar \
-Dotel.exporter.otlp.endpoint=https://otlp.deepcube.ai \
-Dotel.exporter.otlp.protocol=grpc \
-Dotel.exporter.otlp.headers=api-key=YOUR-API-KEY \
-Dotel.service.name=my-java-app \
-jar your-app.jar
Expand Down
43 changes: 33 additions & 10 deletions docs/Instrument/kubernetes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releas

### Create an Instrumentation Resource

Define an `Instrumentation` custom resource that tells the Operator how to configure auto-instrumentation:
Define an `Instrumentation` custom resource that tells the Operator how to configure auto-instrumentation. This resource covers Node.js, which exports directly to DeepCube:

```yaml
# instrumentation.yaml
Expand All @@ -57,14 +57,34 @@ spec:
secretKeyRef:
name: deepcube-api-key
key: api-key
nodejs:
image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-nodejs:latest
```

!!! warning "Use a Collector for Java, Python, .NET, and Go"
DeepCube accepts OTLP over gRPC only. The Operator's auto-instrumentation defaults to `http/protobuf` for Java, Python, .NET, and Go, and the Operator's Python image does not support gRPC at this time. Only Node.js defaults to gRPC. Send the other languages through a [Collector](#otel-collector-as-daemonset), which receives OTLP over HTTP on port 4318 and exports to DeepCube over gRPC.

For those languages, deploy the Collector, then create a second resource that points at it. Replace `YOUR-COLLECTOR-HOST` with the DNS name of your Collector's Kubernetes Service, and make sure that Service exposes port 4318:

```yaml
# instrumentation-collector.yaml
apiVersion: opentelemetry.io/v1alpha1
kind: Instrumentation
metadata:
name: deepcube-collector-instrumentation
namespace: default
spec:
exporter:
endpoint: http://YOUR-COLLECTOR-HOST:4318
propagators:
- tracecontext
- baggage
dotnet:
image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-dotnet:latest
java:
image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-java:latest
python:
image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-python:latest
nodejs:
image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-nodejs:latest
go:
image: ghcr.io/open-telemetry/opentelemetry-operator/autoinstrumentation-go:latest
```
Expand All @@ -83,50 +103,51 @@ kubectl create secret generic deepcube-api-key \

```bash
kubectl apply -f instrumentation.yaml
kubectl apply -f instrumentation-collector.yaml
```

### Annotate Your Pods

Add an annotation to your pod spec to enable auto-instrumentation for your language:
Add an annotation to your pod spec to enable auto-instrumentation for your language. The value names the `Instrumentation` resource to use:

=== ".NET"

```yaml
metadata:
annotations:
instrumentation.opentelemetry.io/inject-dotnet: "true"
instrumentation.opentelemetry.io/inject-dotnet: "deepcube-collector-instrumentation"
```

=== "Java"

```yaml
metadata:
annotations:
instrumentation.opentelemetry.io/inject-java: "true"
instrumentation.opentelemetry.io/inject-java: "deepcube-collector-instrumentation"
```

=== "Python"

```yaml
metadata:
annotations:
instrumentation.opentelemetry.io/inject-python: "true"
instrumentation.opentelemetry.io/inject-python: "deepcube-collector-instrumentation"
```

=== "Node.js"

```yaml
metadata:
annotations:
instrumentation.opentelemetry.io/inject-nodejs: "true"
instrumentation.opentelemetry.io/inject-nodejs: "deepcube-instrumentation"
```

=== "Go"

```yaml
metadata:
annotations:
instrumentation.opentelemetry.io/inject-go: "true"
instrumentation.opentelemetry.io/inject-go: "deepcube-collector-instrumentation"
```

Example Deployment with auto-instrumentation:
Expand All @@ -146,7 +167,7 @@ spec:
labels:
app: my-app
annotations:
instrumentation.opentelemetry.io/inject-java: "true"
instrumentation.opentelemetry.io/inject-nodejs: "deepcube-instrumentation"
spec:
containers:
- name: my-app
Expand Down Expand Up @@ -236,6 +257,8 @@ env:
fieldPath: status.hostIP
- name: OTEL_EXPORTER_OTLP_ENDPOINT
value: "http://$(NODE_IP):4317"
- name: OTEL_EXPORTER_OTLP_PROTOCOL
value: grpc
- name: OTEL_SERVICE_NAME
value: my-app
```
Expand Down
12 changes: 2 additions & 10 deletions docs/Instrument/nodejs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ The OpenTelemetry Node.js SDK reads these variables automatically:
| `OTEL_EXPORTER_OTLP_ENDPOINT` | `https://otlp.deepcube.ai` | OTLP collector endpoint |
| `OTEL_EXPORTER_OTLP_HEADERS` | `api-key=YOUR-API-KEY` | Authentication header |
| `OTEL_SERVICE_NAME` | `your-service-name` | Service name shown in DeepCube |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (grpc or http/protobuf) |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (must be `grpc`) |
| `OTEL_TRACES_EXPORTER` | `otlp` | Trace exporter type |
| `OTEL_METRICS_EXPORTER` | `otlp` | Metrics exporter type |
| `OTEL_LOG_LEVEL` | `info` | SDK diagnostic log level |
Expand Down Expand Up @@ -295,15 +295,7 @@ const sdk = new NodeSDK({
### gRPC connection errors

- Ensure `@grpc/grpc-js` is installed: `npm install @grpc/grpc-js`.
- If behind a corporate proxy, you may need to use the HTTP/protobuf exporter instead:

```bash
npm install @opentelemetry/exporter-trace-otlp-proto
```

```javascript
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-proto');
```
- If you are behind a corporate proxy, make sure it allows gRPC (HTTP/2) traffic to `otlp.deepcube.ai:443`. DeepCube does not accept OTLP over HTTP, so switching to an HTTP exporter does not help.

### ES Modules (import/export) compatibility

Expand Down
2 changes: 1 addition & 1 deletion docs/Instrument/python/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ The OpenTelemetry Python SDK reads these variables automatically:
| `OTEL_EXPORTER_OTLP_ENDPOINT` | `https://otlp.deepcube.ai` | OTLP collector endpoint |
| `OTEL_EXPORTER_OTLP_HEADERS` | `api-key=YOUR-API-KEY` | Authentication header |
| `OTEL_SERVICE_NAME` | `your-service-name` | Service name shown in DeepCube |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (grpc or http/protobuf) |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc` | Protocol (must be `grpc`) |
| `OTEL_TRACES_EXPORTER` | `otlp` | Trace exporter type |
| `OTEL_METRICS_EXPORTER` | `otlp` | Metrics exporter type |
| `OTEL_LOGS_EXPORTER` | `otlp` | Logs exporter type |
Expand Down
Loading
Loading