Azure ↗
noOriginal Documentation
Documentation Index#
Fetch the complete documentation index at: https://docs.trychroma.com/llms.txt Use this file to discover all available pages before exploring further.
Deploy Chroma on Azure using Terraform.
export const Danger = ({title, children}) =>
{title && <p className="block mb-2"><strong>{title}</strong></p>}
{children}
;
export const Callout = ({title, children}) =>
{title && <p className="block mb-2"><strong>{title}</strong></p>}
{children}
;
Chroma Cloud, our fully managed hosted service is here. Sign up for free.
A Simple Azure Deployment#
You can deploy Chroma on a long-running server, and connect to it remotely.
For convenience, we have provided a very simple Terraform configuration to experiment with deploying Chroma to Azure.
Step 1: Install Terraform#
Download Terraform and follow the installation instructions for you OS.
Step 2: Authenticate with Azure#
az loginStep 3: Configure your Azure Settings#
Create a chroma.tfvars file. Use it to define the following variables for your Azure Resource Group name, VM size, and location. Note that this template creates a new resource group for your Chroma deployment.
resource_group_name = "your-azure-resource-group-name"
location = "your-location"
machine_type = "Standard_B1s"Step 4: Initialize and deploy with Terraform#
Download our Azure Terraform configuration to the same directory as your chroma.tfvars file. Then run the following commands to deploy your Chroma stack.
Initialize Terraform:
terraform initPlan the deployment, and review it to ensure it matches your expectations:
terraform plan -var-file chroma.tfvarsFinally, apply the deployment:
terraform apply -var-file chroma.tfvarsAfter a few minutes, you can get the IP address of your instance with
terraform output -raw public_ip_addressStep 5: Chroma Client Set-Up#
Once your Azure VM instance is up and running with Chroma, all
you need to do is configure your HttpClient to use the server’s IP address and port
8000. Since you are running a Chroma server on Azure, our thin-client package may be enough for your application.
import chromadb
chroma_client = chromadb.HttpClient(
host="<Your Chroma instance IP>",
port=8000
)
chroma_client.heartbeat()
```
<span class="tab-end"></span>
<span class="tab-start" data-tab-title="TypeScript"></span>
Once your Azure VM instance is up and running with Chroma, all
you need to do is configure your `ChromaClient` to use the server's IP address and port
`8000`.
```typescript
import { ChromaClient } from "chromadb";
const chromaClient = new ChromaClient({
host: "<Your Chroma instance IP>",
port: 8000,
});
chromaClient.heartbeat();
```
<span class="tab-end"></span>
<span class="tab-start" data-tab-title="Rust"></span>
Once your Azure VM instance is up and running with Chroma, you can point the Rust client at the server's address and port `8000`.
```rust
use chroma::{ChromaHttpClient, ChromaHttpClientOptions};
let mut options = ChromaHttpClientOptions::default();
options.endpoint = "http://<Your Chroma instance IP>:8000".parse()?;
let chroma_client = ChromaHttpClient::new(options);
chroma_client.heartbeat().await?;
```
<span class="tab-end"></span>
<span class="tab-group-end"></span>
### Step 5: Clean Up (optional).
To destroy the stack and remove all Azure resources, use the `terraform destroy` command.
```shell
terraform destroy -var-file chroma.tfvarsObservability with Azure#
Chroma is instrumented with OpenTelemetry hooks for observability. We currently only export OpenTelemetry traces. These should allow you to understand how requests flow through the system and quickly identify bottlenecks. Check out the observability docs for a full explanation of the available parameters.
To enable tracing on your Chroma server, simply define the following variables in your chroma.tfvars:
chroma_otel_collection_endpoint = "api.honeycomb.com"
chroma_otel_service_name = "chromadb"
chroma_otel_collection_headers = "{'x-honeycomb-team': 'abc'}"