diff --git a/.github/holopin.yml b/.github/holopin.yml new file mode 100644 index 00000000000..44a7f0c8a4f --- /dev/null +++ b/.github/holopin.yml @@ -0,0 +1,6 @@ +organization: dapr +defaultSticker: clmjkxscc122740fl0mkmb7egi +stickers: + - + id: clmjkxscc122740fl0mkmb7egi + alias: ghc2023 diff --git a/.github/workflows/website-root.yml b/.github/workflows/website-root.yml index 1f8e503e4c2..17989accb7d 100644 --- a/.github/workflows/website-root.yml +++ b/.github/workflows/website-root.yml @@ -4,11 +4,11 @@ on: workflow_dispatch: push: branches: - - v1.11 + - v1.12 pull_request: types: [opened, synchronize, reopened, closed] branches: - - v1.11 + - v1.12 concurrency: # Cancel the previously triggered build for only PR build. diff --git a/README.md b/README.md index 11ec2756e4d..a189c74f09e 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ The following branches are currently maintained: | Branch | Website | Description | | ------------------------------------------------------------ | -------------------------- | ------------------------------------------------------------------------------------------------ | -| [v1.11](https://github.com/dapr/docs) (primary) | https://docs.dapr.io | Latest Dapr release documentation. Typo fixes, clarifications, and most documentation goes here. | -| [v1.12](https://github.com/dapr/docs/tree/v1.12) (pre-release) | https://v1-12.docs.dapr.io/ | Pre-release documentation. Doc updates that are only applicable to v1.12+ go here. | +| [v1.12](https://github.com/dapr/docs) (primary) | https://docs.dapr.io | Latest Dapr release documentation. Typo fixes, clarifications, and most documentation goes here. | +| [v1.13](https://github.com/dapr/docs/tree/v1.13) (pre-release) | https://v1-13.docs.dapr.io/ | Pre-release documentation. Doc updates that are only applicable to v1.13+ go here. | For more information visit the [Dapr branch structure](https://docs.dapr.io/contributing/docs-contrib/contributing-docs/#branch-guidance) document. diff --git a/daprdocs/config.toml b/daprdocs/config.toml index d28410be666..5b500e5e12f 100644 --- a/daprdocs/config.toml +++ b/daprdocs/config.toml @@ -1,5 +1,5 @@ # Site Configuration -baseURL = "https://v1-12.docs.dapr.io" +baseURL = "https://docs.dapr.io" title = "Dapr Docs" theme = "docsy" disableFastRender = true @@ -168,20 +168,23 @@ offlineSearch = false github_repo = "https://github.com/dapr/docs" github_project_repo = "https://github.com/dapr/dapr" github_subdir = "daprdocs" -github_branch = "v1.11" +github_branch = "v1.12" # Versioning -version_menu = "v1.11 (latest)" -version = "v1.11" +version_menu = "v1.12 (latest)" +version = "v1.12" archived_version = false url_latest_version = "https://docs.dapr.io" [[params.versions]] - version = "v1.12 (preview)" - url = "#" + version = "v1.13 (preview)" + url = "https://v1-13.docs.dapr.io" [[params.versions]] - version = "v1.11 (latest)" + version = "v1.12 (latest)" url = "https://docs.dapr.io" +[[params.versions]] + version = "v1.11" + url = "https://v1-11.docs.dapr.io" [[params.versions]] version = "v1.10" url = "https://v1-10.docs.dapr.io" diff --git a/daprdocs/content/en/developing-applications/building-blocks/actors/actors-timers-reminders.md b/daprdocs/content/en/developing-applications/building-blocks/actors/actors-timers-reminders.md index e889e6317aa..8168aa39b8b 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/actors/actors-timers-reminders.md +++ b/daprdocs/content/en/developing-applications/building-blocks/actors/actors-timers-reminders.md @@ -137,7 +137,7 @@ Refer [api spec]({{< ref "actors_api.md#invoke-reminder" >}}) for more details. ## Error handling -When an actor's method completes successfully, the runtime will contineu to invoke the method at the specified timer or reminder schedule. However, if the method throws an exception, the runtime catches it and logs the error message in the Dapr sidecar logs, without retrying. +When an actor's method completes successfully, the runtime will continue to invoke the method at the specified timer or reminder schedule. However, if the method throws an exception, the runtime catches it and logs the error message in the Dapr sidecar logs, without retrying. To allow actors to recover from failures and retry after a crash or restart, you can persist an actor's state by configuring a state store, like Redis or Azure Cosmos DB. diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-bulk.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-bulk.md index 3961d37570d..5228b5975e3 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-bulk.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-bulk.md @@ -81,13 +81,13 @@ async function start() { { entryID: "entry-2", contentType: "application/cloudevents+json", - event: { + event: { specversion: "1.0", source: "/some/source", type: "example", - id: "1234", - data: "foo message 2", - datacontenttype: "text/plain" + id: "1234", + data: "foo message 2", + datacontenttype: "text/plain" }, }, { @@ -115,7 +115,7 @@ using System.Collections.Generic; using Dapr.Client; const string PubsubName = "my-pubsub-name"; -const string TopicName = "topic-a"; +const string TopicName = "topic-a"; IReadOnlyList BulkPublishData = new List() { new { Id = "17", Amount = 10m }, new { Id = "18", Amount = 20m }, @@ -130,10 +130,10 @@ if (res == null) { } if (res.FailedEntries.Count > 0) { - Console.WriteLine("Some events failed to be published!"); + Console.WriteLine("Some events failed to be published!"); foreach (var failedEntry in res.FailedEntries) { - Console.WriteLine("EntryId: " + failedEntry.Entry.EntryId + " Error message: " + + Console.WriteLine("EntryId: " + failedEntry.Entry.EntryId + " Error message: " + failedEntry.ErrorMessage); } } @@ -205,7 +205,7 @@ func main() { { "entryId": "b1f40bd6-4af2-11ed-b878-0242ac120002", "event": { - "message": "second JSON message" + "message": "second JSON message" }, "contentType": "application/json" } @@ -236,7 +236,7 @@ curl -X POST http://localhost:3500/v1.0-alpha1/publish/bulk/my-pubsub-name/topic { "entryId": "b1f40bd6-4af2-11ed-b878-0242ac120002", "event": { - "message": "second JSON message" + "message": "second JSON message" }, "contentType": "application/json" }, @@ -258,7 +258,7 @@ Invoke-RestMethod -Method Post -ContentType 'application/json' -Uri 'http://loca { "entryId": "b1f40bd6-4af2-11ed-b878-0242ac120002", "event": { - "message": "second JSON message" + "message": "second JSON message" }, "contentType": "application/json" }, @@ -271,7 +271,7 @@ Invoke-RestMethod -Method Post -ContentType 'application/json' -Uri 'http://loca ## Subscribing messages in bulk -The bulk subscribe API allows you to subscribe multiple messages from a topic in a single request. +The bulk subscribe API allows you to subscribe multiple messages from a topic in a single request. As we know from [How to: Publish & Subscribe to topics]({{< ref howto-publish-subscribe.md >}}), there are two ways to subscribe to topic(s): - **Declaratively** - subscriptions are defined in an external file. @@ -286,7 +286,7 @@ metadata: name: order-pub-sub spec: topic: orders - routes: + routes: default: /checkout pubsubname: order-pub-sub bulkSubscribe: @@ -300,11 +300,11 @@ scopes: In the example above, `bulkSubscribe` is _optional_. If you use `bulkSubscribe`, then: - `enabled` is mandatory and enables or disables bulk subscriptions on this topic -- You can optionally configure the max number of messages (`maxMessagesCount`) delivered in a bulk message. -Default value of `maxMessagesCount` for components not supporting bulk subscribe is 100 i.e. for default bulk events between App and Dapr. Please refer [How components handle publishing and subscribing to bulk messages]({{< ref pubsub-bulk >}}). +- You can optionally configure the max number of messages (`maxMessagesCount`) delivered in a bulk message. +Default value of `maxMessagesCount` for components not supporting bulk subscribe is 100 i.e. for default bulk events between App and Dapr. Please refer [How components handle publishing and subscribing to bulk messages]({{< ref pubsub-bulk >}}). If a component supports bulk subscribe, then default value for this parameter can be found in that component doc. - You can optionally provide the max duration to wait (`maxAwaitDurationMs`) before a bulk message is sent to the app. -Default value of `maxAwaitDurationMs` for components not supporting bulk subscribe is 1000 i.e. for default bulk events between App and Dapr. Please refer [How components handle publishing and subscribing to bulk messages]({{< ref pubsub-bulk >}}). +Default value of `maxAwaitDurationMs` for components not supporting bulk subscribe is 1000 i.e. for default bulk events between App and Dapr. Please refer [How components handle publishing and subscribing to bulk messages]({{< ref pubsub-bulk >}}). If a component supports bulk subscribe, then default value for this parameter can be found in that component doc. The application receives an `EntryId` associated with each entry (individual message) in the bulk message. This `EntryId` must be used by the app to communicate the status of that particular entry. If the app fails to notify on an `EntryId` status, it's considered a `RETRY`. @@ -313,16 +313,16 @@ A JSON-encoded payload body with the processing status against each entry needs ```json { - "statuses": - [ + "statuses": + [ { "entryId": "", "status": "" - }, + }, { "entryId": "", "status": "" - } + } ] } ``` @@ -477,37 +477,21 @@ For event publish/subscribe, two kinds of network transfers are involved. 1. From/To *App* To/From *Dapr*. 1. From/To *Dapr* To/From *Pubsub Broker*. -These are the opportunities where optimization is possible. When optimized, a Bulk requests are, which reduce number of overall calls and thus increase throughput and provide better latency. +These are the opportunities where optimization is possible. When optimized, Bulk requests are made, which reduce the overall number of calls and thus increases throughput and provides better latency. On enabling Bulk Publish and/or Bulk Subscribe, the communication between the App and Dapr sidecar (Point 1 above) is optimized for **all components**. -Optimization from Dapr sidecar to the pub/sub broker would depend on a number of factors, for example: -- If the broker inherently supports Bulk pub/sub -- If the Dapr component is updated to support the use of bulk APIs provided by the broker. +Optimization from Dapr sidecar to the pub/sub broker depends on a number of factors, for example: +- Broker must inherently support Bulk pub/sub +- The Dapr component must be updated to support the use of bulk APIs provided by the broker Currently, the following components are updated to support this level of optimization: - - - - - - - - - - - - - - - - - - - - - -
ComponentBulk PublishBulk Subscribe
KafkaYesYes
Azure ServicebusYesYes
Azure EventhubsYesYes
+ +| Component | Bulk Publish | Bulk Subscribe | +|:--------------------:|:--------:|--------| +| Kafka | Yes | Yes | +| Azure Servicebus | Yes | Yes | +| Azure Eventhubs | Yes | Yes | ## Demos diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-cloudevents.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-cloudevents.md index b6f46bb2970..47c115ef6c2 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-cloudevents.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-cloudevents.md @@ -106,7 +106,7 @@ with DaprClient() as client: result = client.publish_event( pubsub_name='order_pub_sub', topic_name='orders', - publish_metadata={'cloudevent.id: 'd99b228f-6c73-4e78-8c4d-3f80a043d317', cloudevent.source: 'payment'} + publish_metadata={'cloudevent.id': 'd99b228f-6c73-4e78-8c4d-3f80a043d317', 'cloudevent.source': 'payment'} ) ``` diff --git a/daprdocs/content/en/getting-started/quickstarts/pubsub-quickstart.md b/daprdocs/content/en/getting-started/quickstarts/pubsub-quickstart.md index 61306891165..06f6402cf2d 100644 --- a/daprdocs/content/en/getting-started/quickstarts/pubsub-quickstart.md +++ b/daprdocs/content/en/getting-started/quickstarts/pubsub-quickstart.md @@ -986,7 +986,7 @@ Verify you have the following files included in the service directory: Run the `order-processor` subscriber service alongside a Dapr sidecar. ```bash -dapr run --app-port 5001 --app-id order-processing --app-protocol http --dapr-http-port 3501 --resources-path ../../../components -- npm run start +dapr run --app-port 5002 --app-id order-processing --app-protocol http --dapr-http-port 3501 --resources-path ../../../components -- npm run start ``` In the `order-processor` subscriber, we're subscribing to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar. @@ -1140,7 +1140,7 @@ dotnet build Run the `order-processor` subscriber service alongside a Dapr sidecar. ```bash -dapr run --app-id order-processor --resources-path ../../../components --app-port 7005 -- dotnet run +dapr run --app-id order-processor --resources-path ../../../components --app-port 7006 -- dotnet run ``` In the `order-processor` subscriber, we're subscribing to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar. @@ -1457,7 +1457,7 @@ go build . Run the `order-processor` subscriber service alongside a Dapr sidecar. ```bash -dapr run --app-port 6002 --app-id order-processor-sdk --app-protocol http --dapr-http-port 3501 --resources-path ../../../components -- go run . +dapr run --app-port 6005 --app-id order-processor-sdk --app-protocol http --dapr-http-port 3501 --resources-path ../../../components -- go run . ``` In the `order-processor` subscriber, we're subscribing to the Redis instance called `orderpubsub` [(as defined in the `pubsub.yaml` component)]({{< ref "#pubsubyaml-component-file" >}}) and topic `orders`. This enables your app code to talk to the Redis component instance through the Dapr sidecar. diff --git a/daprdocs/content/en/operations/observability/tracing/jaeger.md b/daprdocs/content/en/operations/observability/tracing/jaeger.md deleted file mode 100644 index 7ef470a37fe..00000000000 --- a/daprdocs/content/en/operations/observability/tracing/jaeger.md +++ /dev/null @@ -1,187 +0,0 @@ ---- -type: docs -title: "How-To: Set up Jaeger for distributed tracing" -linkTitle: "Jaeger" -weight: 3000 -description: "Set up Jaeger for distributed tracing" -type: docs ---- - -Dapr supports the Zipkin protocol. Since Jaeger is compatible with Zipkin, the Zipkin protocol can be used to communication with Jaeger. - -## Configure self hosted mode - -### Setup - -The simplest way to start Jaeger is to use the pre-built all-in-one Jaeger image published to DockerHub: - -```bash -docker run -d --name jaeger \ - -e COLLECTOR_ZIPKIN_HOST_PORT=:9412 \ - -p 16686:16686 \ - -p 9412:9412 \ - jaegertracing/all-in-one:1.22 -``` - - -Next, create the following YAML files locally: - -* **config.yaml**: Note that because we are using the Zipkin protocol -to talk to Jaeger, we specify the `zipkin` section of tracing -configuration set the `endpointAddress` to address of the Jaeger -instance. - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: tracing - namespace: default -spec: - tracing: - samplingRate: "1" - zipkin: - endpointAddress: "http://localhost:9412/api/v2/spans" -``` - -To launch the application referring to the new YAML file, you can use -`--config` option: - -```bash -dapr run --app-id mynode --app-port 3000 node app.js --config config.yaml -``` - -### Viewing Traces -To view traces, in your browser go to http://localhost:16686 to see the Jaeger UI. - -## Configure Kubernetes -The following steps shows you how to configure Dapr to send distributed tracing data to Jaeger running as a container in your Kubernetes cluster, how to view them. - -### Setup - -First create the following YAML file to install Jaeger, file name is `jaeger-operator.yaml` - -#### Development and test - -By default, the allInOne Jaeger image uses memory as the backend storage and it is not recommended to use this in a production environment. - -```yaml -apiVersion: jaegertracing.io/v1 -kind: "Jaeger" -metadata: - name: jaeger -spec: - strategy: allInOne - ingress: - enabled: false - allInOne: - image: jaegertracing/all-in-one:1.22 - options: - query: - base-path: /jaeger -``` - -#### Production -Jaeger uses Elasticsearch as the backend storage, and you can create a secret in k8s cluster to access Elasticsearch server with access control. - - -```shell -kubectl create secret generic jaeger-secret --from-literal=ES_PASSWORD='xxx' --from-literal=ES_USERNAME='xxx' -n ${NAMESPACE} -``` - -```yaml -apiVersion: jaegertracing.io/v1 -kind: "Jaeger" -metadata: - name: jaeger -spec: - strategy: production - query: - options: - log-level: info - query: - base-path: /jaeger - collector: - maxReplicas: 5 - resources: - limits: - cpu: 500m - memory: 516Mi - storage: - type: elasticsearch - esIndexCleaner: - enabled: false ## turn the job deployment on and off - numberOfDays: 7 ## number of days to wait before deleting a record - schedule: "55 23 * * *" ## cron expression for it to run - image: jaegertracing/jaeger-es-index-cleaner ## image of the job - secretName: jaeger-secret - options: - es: - server-urls: http://elasticsearch:9200 -``` - -The pictures are as follows, include Elasticsearch and Grafana tracing data: - -![jaeger-storage-es](/images/jaeger_storage_elasticsearch.png) - -![grafana](/images/jaeger_grafana.png) - - -Now, use the above YAML file to install Jaeger - -```bash -# Install Jaeger -helm repo add jaegertracing https://jaegertracing.github.io/helm-charts -helm install jaeger-operator jaegertracing/jaeger-operator -kubectl apply -f jaeger-operator.yaml - -# Wait for Jaeger to be up and running -kubectl wait deploy --selector app.kubernetes.io/name=jaeger --for=condition=available -``` - -Next, create the following YAML file locally: - -* **tracing.yaml** - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: tracing - namespace: default -spec: - tracing: - samplingRate: "1" - zipkin: - endpointAddress: "http://jaeger-collector.default.svc.cluster.local:9411/api/v2/spans" -``` - -Finally, deploy the the Dapr component and configuration files: - -```bash -kubectl apply -f tracing.yaml -``` - -In order to enable this configuration for your Dapr sidecar, add the following annotation to your pod spec template: - -```yml -annotations: - dapr.io/config: "tracing" -``` - -That's it! Your Dapr sidecar is now configured for use with Jaeger. - -### Viewing Tracing Data - -To view traces, connect to the Jaeger Service and open the UI: - -```bash -kubectl port-forward svc/jaeger-query 16686 -``` - -In your browser, go to `http://localhost:16686` and you will see the Jaeger UI. - -![jaeger](/images/jaeger_ui.png) - -## References -- [Jaeger Getting Started](https://www.jaegertracing.io/docs/1.21/getting-started/#all-in-one) diff --git a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md new file mode 100644 index 00000000000..6ee6727beb5 --- /dev/null +++ b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector-jaeger.md @@ -0,0 +1,142 @@ +--- +type: docs +title: "Using OpenTelemetry Collector to collect traces to send to Jaeger" +linkTitle: "Using the OpenTelemetry for Jaeger" +weight: 1200 +description: "How to push trace events to Jaeger distributed tracing platform, using the OpenTelemetry Collector." +type: docs +--- + +While Dapr supports writing traces using OpenTelemetry (OTLP) and Zipkin protocols, Zipkin support for Jaeger has been deprecated in favor of OTLP. Although Jaeger supports OTLP directly, the recommended approach for production is to use the OpenTelemetry Collector to collect traces from Dapr and send them to Jaeger, allowing your application to quickly offload data and take advantage of features like retries, batching, and encryption. For more information, read the Open Telemetry Collector [documentation](https://opentelemetry.io/docs/collector/#when-to-use-a-collector). +{{< tabs Self-hosted Kubernetes >}} + +{{% codetab %}} + +## Configure Jaeger in self-hosted mode + +### Local setup + +The simplest way to start Jaeger is to run the pre-built, all-in-one Jaeger image published to DockerHub and expose the OTLP port: + +```bash +docker run -d --name jaeger \ + -p 4317:4317 \ + -p 16686:16686 \ + jaegertracing/all-in-one:1.49 +``` + +Next, create the following `config.yaml` file locally: + +> **Note:** Because you are using the Open Telemetry protocol to talk to Jaeger, you need to fill out the `otel` section of the tracing configuration and set the `endpointAddress` to the address of the Jaeger container. + +```yaml +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: tracing + namespace: default +spec: + tracing: + samplingRate: "1" + stdout: true + otel: + endpointAddress: "localhost:4317" + isSecure: false + protocol: grpc +``` + +To launch the application referring to the new YAML configuration file, use +the `--config` option. For example: + +```bash +dapr run --app-id myapp --app-port 3000 node app.js --config config.yaml +``` + +### View traces + +To view traces in your browser, go to `http://localhost:16686` to see the Jaeger UI. +{{% /codetab %}} + +{{% codetab %}} + +## Configure Jaeger on Kubernetes with the OpenTelemetry Collector + +The following steps show you how to configure Dapr to send distributed tracing data to the OpenTelemetry Collector which, in turn, sends the traces to Jaeger. + +### Prerequisites + +- [Install Dapr on Kubernetes]({{< ref kubernetes >}}) +- [Set up Jaeger](https://www.jaegertracing.io/docs/1.49/operator/) using the Jaeger Kubernetes Operator + +### Set up OpenTelemetry Collector to push to Jaeger + +To push traces to your Jaeger instance, install the OpenTelemetry Collector on your Kubernetes cluster. + +1. Download and inspect the [`open-telemetry-collector-jaeger.yaml`](/docs/open-telemetry-collector/open-telemetry-collector-jaeger.yaml) file. + +1. In the data section of the `otel-collector-conf` ConfigMap, update the `otlp/jaeger.endpoint` value to reflect the endpoint of your Jaeger collector Kubernetes service object. + +1. Deploy the OpenTelemetry Collector into the same namespace where your Dapr-enabled applications are running: + + ```sh + kubectl apply -f open-telemetry-collector-jaeger.yaml + ``` + +### Set up Dapr to send traces to OpenTelemetryCollector + +Create a Dapr configuration file to enable tracing and export the sidecar traces to the OpenTelemetry Collector. + +1. Use the [`collector-config-otel.yaml`](/docs/open-telemetry-collector/collector-config-otel.yaml) file to create your own Dapr configuration. + +1. Update the `namespace` and `otel.endpointAddress` values to align with the namespace where your Dapr-enabled applications and OpenTelemetry Collector are deployed. + +1. Apply the configuration with: + + ```sh + kubectl apply -f collector-config.yaml + ``` + +### Deploy your app with tracing enabled + +Apply the `tracing` Dapr configuration by adding a `dapr.io/config` annotation to the application deployment that you want to enable distributed tracing for, as shown in the following example: + + ```yaml + apiVersion: apps/v1 + kind: Deployment + metadata: + ... + spec: + ... + template: + metadata: + ... + annotations: + dapr.io/enabled: "true" + dapr.io/app-id: "MyApp" + dapr.io/app-port: "8080" + dapr.io/config: "tracing" + ``` + +You can register multiple tracing exporters at the same time, and the tracing logs are forwarded to all registered exporters. + +That’s it! There’s no need to include the OpenTelemetry SDK or instrument your application code. Dapr automatically handles the distributed tracing for you. + +### View traces + +To view Dapr sidecar traces, port-forward the Jaeger Service and open the UI: + +```bash +kubectl port-forward svc/jaeger-query 16686 -n observability +``` + +In your browser, go to `http://localhost:16686` and you will see the Jaeger UI. + +![jaeger](/images/jaeger_ui.png) +{{% /codetab %}} + +{{< /tabs >}} +## References + +- [Jaeger Getting Started](https://www.jaegertracing.io/docs/1.49/getting-started/) +- [Jaeger Kubernetes Operator](https://www.jaegertracing.io/docs/1.49/operator/) +- [OpenTelemetry Collector Exporters](https://opentelemetry.io/docs/collector/configuration/#exporters) diff --git a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector.md b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector.md index aeff1a2c966..51c75123c01 100644 --- a/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector.md +++ b/daprdocs/content/en/operations/observability/tracing/otel-collector/open-telemetry-collector.md @@ -6,9 +6,9 @@ weight: 900 description: "How to use Dapr to push trace events through the OpenTelemetry Collector." --- -Dapr directly writes traces using the OpenTelemetry (OTEL) protocol as the **recommended** method. For observability tools that support OTEL protocol, it is recommended to use the OpenTelemetry Collector, as it allows your application to quickly offload data and includes features, such as retries, batching, and encryption. For more information, read the Open Telemetry [documentation](https://opentelemetry.io/docs/collector/#when-to-use-a-collector). +Dapr directly writes traces using the OpenTelemetry (OTLP) protocol as the **recommended** method. For observability tools that support the OTLP directly, it is recommended to use the [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector), as it allows your application to quickly offload data and includes features, such as retries, batching, and encryption. For more information, read the Open Telemetry Collector [documentation](https://opentelemetry.io/docs/collector/#when-to-use-a-collector). -Dapr can also write traces using the Zipkin protocol. Previous to supporting the OTEL protocol, you use the Zipkin protocol with the [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector) to send traces to observability tools such as AWS X-Ray, Google Cloud Operations Suite, and Azure Monitor. Both protocol approaches are valid, however OTEL is the recommended choice. +Dapr can also write traces using the Zipkin protocol. Prior to supporting the OTLP protocol, the Zipkin protocol was used with the OpenTelemetry Collector to send traces to observability tools such as AWS X-Ray, Google Cloud Operations Suite, and Azure Monitor. Both protocol approaches are valid, however the OpenTelemetry protocol is the recommended choice. ![Using OpenTelemetry Collect to integrate with many backend](/images/open-telemetry-collector.png) diff --git a/daprdocs/content/en/operations/observability/tracing/setup-tracing.md b/daprdocs/content/en/operations/observability/tracing/setup-tracing.md index 3ae01b27603..4fd3f40bca6 100644 --- a/daprdocs/content/en/operations/observability/tracing/setup-tracing.md +++ b/daprdocs/content/en/operations/observability/tracing/setup-tracing.md @@ -75,6 +75,6 @@ turns on tracing for the sidecar. Learn how to set up tracing with one of the following tools: - [OTEL Collector]({{< ref otel-collector >}}) - [New Relic]({{< ref newrelic.md >}}) -- [Jaeger]({{< ref jaeger.md >}}) +- [Jaeger]({{< ref open-telemetry-collector-jaeger.md >}}) - [Zipkin]({{< ref zipkin.md >}}) - [Datadog]({{< ref datadog.md >}}) \ No newline at end of file diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index 915042374eb..8dd71a45723 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -45,10 +45,11 @@ The table below shows the versions of Dapr releases that have been tested togeth | Release date | Runtime | CLI | SDKs | Dashboard | Status | Release notes | |--------------------|:--------:|:--------|---------|---------|---------|------------| -| August 31st 2023 | 1.11.3
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported (current) | [v1.11.3 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.3) | -| July 20th 2023 | 1.11.2
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported (current) | [v1.11.2 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.2) | -| June 22nd 2023 | 1.11.1
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported (current) | [v1.11.1 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.1) | -| June 12th 2023 | 1.11.0
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported (current) | [v1.11.0 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.0) | +| October 11th 2023 | 1.12.0
| 1.12.0 | Java 1.10.0
Go 1.9.0
PHP 1.1.0
Python 1.11.0
.NET 1.12.0
JS 3.1.2 | 0.13.0 | Supported (current) | [v1.12.0 release notes](https://github.com/dapr/dapr/releases/tag/v1.12.0) | +| August 31st 2023 | 1.11.3
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported | [v1.11.3 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.3) | +| July 20th 2023 | 1.11.2
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported | [v1.11.2 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.2) | +| June 22nd 2023 | 1.11.1
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported | [v1.11.1 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.1) | +| June 12th 2023 | 1.11.0
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported | [v1.11.0 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.0) | | July 20th 2023 | 1.10.9
| 1.10.0 | Java 1.8.0
Go 1.7.0
PHP 1.1.0
Python 1.9.0
.NET 1.10.0
JS 3.0.0 | 0.11.0 | Supported | [v1.10.9 release notes](https://github.com/dapr/dapr/releases/tag/v1.10.9) | | June 22nd 2023 | 1.10.8
| 1.10.0 | Java 1.8.0
Go 1.7.0
PHP 1.1.0
Python 1.9.0
.NET 1.10.0
JS 3.0.0 | 0.11.0 | Supported | [v1.10.8 release notes](https://github.com/dapr/dapr/releases/tag/v1.10.8) | | May 15th 2023 | 1.10.7
| 1.10.0 | Java 1.8.0
Go 1.7.0
PHP 1.1.0
Python 1.9.0
.NET 1.10.0
JS 3.0.0 | 0.11.0 | Supported | | @@ -81,16 +82,6 @@ The table below shows the versions of Dapr releases that have been tested togeth | Apr 20th 2022 | 1.6.2
| 1.6.0 | Java 1.4.0
Go 1.3.1
PHP 1.1.0
Python 1.5.0
.NET 1.6.0
JS 2.0.0 | 0.9.0 | Unsupported | | | Mar 25th 2022 | 1.6.1
| 1.6.0 | Java 1.4.0
Go 1.3.1
PHP 1.1.0
Python 1.5.0
.NET 1.6.0
JS 2.0.0 | 0.9.0 | Unsupported | | | Jan 25th 2022 | 1.6.0
| 1.6.0 | Java 1.4.0
Go 1.3.1
PHP 1.1.0
Python 1.5.0
.NET 1.6.0
JS 2.0.0 | 0.9.0 | Unsupported | | -| Mar 25th 2022 | 1.5.2
| 1.6.0 | Java 1.3.0
Go 1.3.0
PHP 1.1.0
Python 1.4.0
.NET 1.5.0
JS 1.0.2 | 0.9.0 | Unsupported | | -| Dec 6th 2021 | 1.5.1
| 1.5.1 | Java 1.3.0
Go 1.3.0
PHP 1.1.0
Python 1.4.0
.NET 1.5.0
JS 1.0.2 | 0.9.0 | Unsupported | | -| Nov 11th 2021 | 1.5.0
| 1.5.0 | Java 1.3.0
Go 1.3.0
PHP 1.1.0
Python 1.4.0
.NET 1.5.0
JS 1.0.2 | 0.9.0 | Unsupported | | -| Dev 6th 2021 | 1.4.4
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Unsupported | | -| Oct 7th 2021 | 1.4.3
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Unsupported | | -| Sep 24th 2021 | 1.4.2
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Unsupported | | -| Sep 22nd 2021 | 1.4.1
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Unsupported | | -| Sep 15th 2021 | 1.4
| 1.4.0 | Java 1.3.0
Go 1.2.0
PHP 1.1.0
Python 1.3.0
.NET 1.4.0 | 0.8.0 | Unsupported | | -| Sep 14th 2021 | 1.3.1
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Unsupported | | -| Jul 26th 2021 | 1.3
| 1.3.0 | Java 1.2.0
Go 1.2.0
PHP 1.1.0
Python 1.2.0
.NET 1.3.0 | 0.7.0 | Unsupported | | ## Upgrade paths @@ -122,7 +113,8 @@ General guidance on upgrading can be found for [self hosted mode]({{< ref self-h | 1.8.0 to 1.8.6 | N/A | 1.9.6 | | 1.9.0 | N/A | 1.9.6 | | 1.10.0 | N/A | 1.10.8 | -| 1.11.0 | N/A | 1.11.3 | +| 1.11.0 | N/A | 1.11.4 | +| 1.12.0 | N/A | 1.12.0 | ## Upgrade on Hosting platforms diff --git a/daprdocs/content/en/reference/api/configuration_api.md b/daprdocs/content/en/reference/api/configuration_api.md index 3fe4ed283ea..1d0233af57f 100644 --- a/daprdocs/content/en/reference/api/configuration_api.md +++ b/daprdocs/content/en/reference/api/configuration_api.md @@ -65,7 +65,11 @@ curl -X GET 'http://localhost:3500/v1.0/configuration/mystore?key=myConfigKey' > The above command returns the following JSON: ```json -[{"key":"myConfigKey","value":"myConfigValue"}] +{ + "myConfigKey": { + "value":"myConfigValue" + } +} ``` ## Subscribe Configuration diff --git a/daprdocs/content/en/reference/components-reference/supported-configuration-stores/azure-appconfig-configuration-store.md b/daprdocs/content/en/reference/components-reference/supported-configuration-stores/azure-appconfig-configuration-store.md index 6ba16586462..11c1848cc13 100644 --- a/daprdocs/content/en/reference/components-reference/supported-configuration-stores/azure-appconfig-configuration-store.md +++ b/daprdocs/content/en/reference/components-reference/supported-configuration-stores/azure-appconfig-configuration-store.md @@ -52,8 +52,8 @@ The above example uses secrets as plain strings. It is recommended to use a secr | Field | Required | Details | Example | |----------------------------|:--------:|---------|---------| -| connectionString | Y* | Connection String for the Azure App Configuration instance. No Default. Can be `secretKeyRef` to use a secret reference. *Mutally exclusive with host field. *Not to be used when [Azure Authentication](https://docs.dapr.io/developing-applications/integrations/azure/authenticating-azure/) is used | `Endpoint=https://foo.azconfig.io;Id=osOX-l9-s0:sig;Secret=00000000000000000000000000000000000000000000` -| host | N* | Endpoint for the Azure App Configuration instance. No Default. *Mutally exclusive with connectionString field. *To be used when [Azure Authentication](https://docs.dapr.io/developing-applications/integrations/azure/authenticating-azure/) is used | `https://dapr.azconfig.io` +| connectionString | Y* | Connection String for the Azure App Configuration instance. No Default. Can be `secretKeyRef` to use a secret reference. *Mutally exclusive with host field. *Not to be used when [Azure Authentication](https://docs.dapr.io/developing-applications/integrations/azure/azure-authentication/authenticating-azure/) is used | `Endpoint=https://foo.azconfig.io;Id=osOX-l9-s0:sig;Secret=00000000000000000000000000000000000000000000` +| host | N* | Endpoint for the Azure App Configuration instance. No Default. *Mutally exclusive with connectionString field. *To be used when [Azure Authentication](https://docs.dapr.io/developing-applications/integrations/azure/azure-authentication/authenticating-azure/) is used | `https://dapr.azconfig.io` | maxRetries | N | Maximum number of retries before giving up. Defaults to `3` | `5`, `10` | retryDelay | N | RetryDelay specifies the initial amount of delay to use before retrying an operation. The delay increases exponentially with each retry up to the maximum specified by MaxRetryDelay. Defaults to `4` seconds; `"-1"` disables delay between retries. | `4s` | maxRetryDelay | N | MaxRetryDelay specifies the maximum delay allowed before retrying an operation. Typically the value is greater than or equal to the value specified in RetryDelay. Defaults to `120` seconds; `"-1"` disables the limit | `120s` diff --git a/daprdocs/content/en/reference/environment/_index.md b/daprdocs/content/en/reference/environment/_index.md index 9ae9b7b22f1..e2ce895ea82 100644 --- a/daprdocs/content/en/reference/environment/_index.md +++ b/daprdocs/content/en/reference/environment/_index.md @@ -27,4 +27,5 @@ The following table lists the environment variables used by the Dapr runtime, CL | OTEL_EXPORTER_OTLP_PROTOCOL | OpenTelemetry Tracing | The OTLP protocol to use Transport protocol. (`grpc`, `http/protobuf`, `http/json`) | | DAPR_COMPONENTS_SOCKETS_FOLDER | Dapr runtime and the .NET, Go, and Java pluggable component SDKs | The location or path where Dapr looks for Pluggable Components Unix Domain Socket files. If unset this location defaults to `/tmp/dapr-components-sockets` | | DAPR_COMPONENTS_SOCKETS_EXTENSION | .NET and Java pluggable component SDKs | A per-SDK configuration that indicates the default file extension applied to socket files created by the SDKs. Not a Dapr-enforced behavior. | -| DAPR_PLACEMENT_METADATA_ENABLED | Dapr placement | Enable an endpoint for the Placement service that exposes placement table information on actor usage. Set to `true` to enable in self-hosted mode. [Learn more about the Placement API]({{< ref placement_api.md >}}) | \ No newline at end of file +| DAPR_PLACEMENT_METADATA_ENABLED | Dapr placement | Enable an endpoint for the Placement service that exposes placement table information on actor usage. Set to `true` to enable in self-hosted mode. [Learn more about the Placement API]({{< ref placement_api.md >}}) | +| DAPR_HOST_IP | Dapr sidecar | The host's chosen IP address. If not specified, will loop over the network interfaces and select the first non-loopback address it finds.| diff --git a/daprdocs/content/en/reference/resource-specs/component-schema.md b/daprdocs/content/en/reference/resource-specs/component-schema.md index 0face5b9a62..349ff4923a3 100644 --- a/daprdocs/content/en/reference/resource-specs/component-schema.md +++ b/daprdocs/content/en/reference/resource-specs/component-schema.md @@ -13,6 +13,8 @@ Dapr defines and registers components using a [resource specifications](https:// ```yaml apiVersion: dapr.io/v1alpha1 kind: Component +auth: + secretstore: [SECRET-STORE-NAME] metadata: name: [COMPONENT-NAME] namespace: [COMPONENT-NAMESPACE] @@ -24,6 +26,9 @@ spec: metadata: - name: [METADATA-NAME] value: [METADATA-VALUE] +scopes: + - [APPID] + - [APPID] ``` ## Spec fields @@ -32,6 +37,8 @@ spec: |--------------------|:--------:|---------|---------| | apiVersion | Y | The version of the Dapr (and Kubernetes if applicable) API you are calling | `dapr.io/v1alpha1` | kind | Y | The type of resource. For components is must always be `Component` | `Component` +| auth | N | The name of a secret store where `secretKeyRef` in the metadata lookup the name of secrets used in the component | See [How-to: Reference secrets in components]({{< ref component-secrets >}}) +| scopes | N | The applications the component is limited to, specified by their app IDs | `order-processor`, `checkout` | **metadata** | - | **Information about the component registration** | | metadata.name | Y | The name of the component | `prod-statestore` | metadata.namespace | N | The namespace for the component for hosting environments with namespaces | `myapp-namespace` @@ -41,6 +48,7 @@ spec: | spec.initTimeout | N | The timeout duration for the initialization of the component. Default is 5s | `5m`, `1h`, `20s` | spec.ignoreErrors | N | Tells the Dapr sidecar to continue initialization if the component fails to load. Default is false | `false` | **spec.metadata** | - | **A key/value pair of component specific configuration. See your component definition for fields**| +| spec.metadata.name | Y | The name of the component-specific property and its value | `- name: secretsFile`
`value: secrets.json` ### Templated metadata values diff --git a/daprdocs/content/en/reference/resource-specs/httpendpoints-schema.md b/daprdocs/content/en/reference/resource-specs/httpendpoints-schema.md index 6517d4795d8..a85a253151c 100644 --- a/daprdocs/content/en/reference/resource-specs/httpendpoints-schema.md +++ b/daprdocs/content/en/reference/resource-specs/httpendpoints-schema.md @@ -18,7 +18,6 @@ kind: HTTPEndpoint metadata: name: spec: - version: v1alpha1 baseUrl: # Required. Use "http://" or "https://" prefix. headers: # Optional - name: @@ -56,4 +55,4 @@ auth: # Optional ## Related links -[Learn how to invoke non-Dapr endpoints.]({{< ref howto-invoke-non-dapr-endpoints.md >}}) \ No newline at end of file +[Learn how to invoke non-Dapr endpoints.]({{< ref howto-invoke-non-dapr-endpoints.md >}}) diff --git a/daprdocs/layouts/shortcodes/dapr-latest-version.html b/daprdocs/layouts/shortcodes/dapr-latest-version.html index 9b4bf780551..109d34c73d2 100644 --- a/daprdocs/layouts/shortcodes/dapr-latest-version.html +++ b/daprdocs/layouts/shortcodes/dapr-latest-version.html @@ -1 +1 @@ -{{- if .Get "short" }}1.11{{ else if .Get "long" }}1.11.3{{ else if .Get "cli" }}1.11.0{{ else }}1.11.3{{ end -}} +{{- if .Get "short" }}1.12{{ else if .Get "long" }}1.12.0{{ else if .Get "cli" }}1.12.0{{ else }}1.12.0{{ end -}} diff --git a/daprdocs/static/docs/open-telemetry-collector/collector-config-otel.yaml b/daprdocs/static/docs/open-telemetry-collector/collector-config-otel.yaml new file mode 100644 index 00000000000..298cfd9fc0e --- /dev/null +++ b/daprdocs/static/docs/open-telemetry-collector/collector-config-otel.yaml @@ -0,0 +1,13 @@ +apiVersion: dapr.io/v1alpha1 +kind: Configuration +metadata: + name: tracing + namespace: default # Your app namespace +spec: + tracing: + samplingRate: "1" + stdout: true + otel: + endpointAddress: "otel-collector.default.svc.cluster.local:4317" + isSecure: false + protocol: grpc diff --git a/daprdocs/static/docs/open-telemetry-collector/open-telemetry-collector-jaeger.yaml b/daprdocs/static/docs/open-telemetry-collector/open-telemetry-collector-jaeger.yaml new file mode 100644 index 00000000000..d8c0fe2934e --- /dev/null +++ b/daprdocs/static/docs/open-telemetry-collector/open-telemetry-collector-jaeger.yaml @@ -0,0 +1,111 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: otel-collector-conf + labels: + app: opentelemetry + component: otel-collector-conf +data: + otel-collector-config: | + receivers: + otlp: + protocols: + grpc: + endpoint: 0.0.0.0:4317 + extensions: + health_check: + pprof: + endpoint: :1888 + zpages: + endpoint: :55679 + exporters: + logging: + loglevel: debug + # Depending on where you want to export your trace, use the + # correct OpenTelemetry trace exporter here. + # + # Refer to + # https://github.com/open-telemetry/opentelemetry-collector/tree/main/exporter + # and + # https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter + # for full lists of trace exporters that you can use, and how to + # configure them. + otlp/jaeger: + endpoint: "jaeger-collector.observability.svc.cluster.local:4317" + tls: + insecure: true + service: + extensions: [pprof, zpages, health_check] + pipelines: + traces: + receivers: [otlp] + # List your exporter here. + exporters: [otlp/jaeger,logging] +--- +apiVersion: v1 +kind: Service +metadata: + name: otel-collector + labels: + app: opencesus + component: otel-collector +spec: + ports: + - name: otel # Default endpoint for OTEL receiver. + port: 4317 + protocol: TCP + targetPort: 4317 + selector: + component: otel-collector +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: otel-collector + labels: + app: opentelemetry + component: otel-collector +spec: + replicas: 1 # scale out based on your usage + selector: + matchLabels: + app: opentelemetry + template: + metadata: + labels: + app: opentelemetry + component: otel-collector + spec: + containers: + - name: otel-collector + image: otel/opentelemetry-collector-contrib-dev:latest + command: + - "/otelcontribcol" + - "--config=/conf/otel-collector-config.yaml" + resources: + limits: + cpu: 1 + memory: 2Gi + requests: + cpu: 200m + memory: 400Mi + ports: + - containerPort: 4317 # Default endpoint for OTEL receiver. + volumeMounts: + - name: otel-collector-config-vol + mountPath: /conf + livenessProbe: + httpGet: + path: / + port: 13133 + readinessProbe: + httpGet: + path: / + port: 13133 + volumes: + - configMap: + name: otel-collector-conf + items: + - key: otel-collector-config + path: otel-collector-config.yaml + name: otel-collector-config-vol diff --git a/daprdocs/static/presentations/Dapr-Diagrams.pptx.zip b/daprdocs/static/presentations/Dapr-Diagrams.pptx.zip index 6c49403c113..778e1704862 100644 Binary files a/daprdocs/static/presentations/Dapr-Diagrams.pptx.zip and b/daprdocs/static/presentations/Dapr-Diagrams.pptx.zip differ diff --git a/sdkdocs/dotnet b/sdkdocs/dotnet index 2449bcd6691..99d874a2b13 160000 --- a/sdkdocs/dotnet +++ b/sdkdocs/dotnet @@ -1 +1 @@ -Subproject commit 2449bcd6691eb49825e0e8e9dff50bd50fd41c2e +Subproject commit 99d874a2b138af020df099a0fc0a09a7d0597fae diff --git a/sdkdocs/go b/sdkdocs/go index ad25580bcfb..e16e0350a52 160000 --- a/sdkdocs/go +++ b/sdkdocs/go @@ -1 +1 @@ -Subproject commit ad25580bcfb638d56237faec0543565b4d0e134f +Subproject commit e16e0350a52349b5a05138edc0b58e3be78ee753 diff --git a/sdkdocs/java b/sdkdocs/java index 9dc842faba3..5e45aa86b81 160000 --- a/sdkdocs/java +++ b/sdkdocs/java @@ -1 +1 @@ -Subproject commit 9dc842faba3486e518babc29f7fbbca79248bfab +Subproject commit 5e45aa86b81748bf1e6efdbf7f52c20645a12435 diff --git a/sdkdocs/js b/sdkdocs/js index 7686ab039bc..df7eff281a5 160000 --- a/sdkdocs/js +++ b/sdkdocs/js @@ -1 +1 @@ -Subproject commit 7686ab039bcc30f375f922960020d403dd2d3867 +Subproject commit df7eff281a5a1395a7967c658a5707e8dfb2b99e diff --git a/sdkdocs/python b/sdkdocs/python index 64e834b0a06..6171b67db60 160000 --- a/sdkdocs/python +++ b/sdkdocs/python @@ -1 +1 @@ -Subproject commit 64e834b0a06f5b218efc941b8caf3683968b7208 +Subproject commit 6171b67db60d51704ed8425ae71dda9226bf1255