|
| 1 | +--- |
| 2 | +title: Egress for subscription metrics and operational metadata |
| 3 | +sidebarTitle: Egress for metrics and metadata |
| 4 | +--- |
| 5 | + |
| 6 | +<Note> **Important: self-hosted only.** This section only applies to customers who are not running in offline mode and assumes you are using a [self-hosted LangGraph Platform instance](/langgraph-platform/deployment-options). This does not apply to cloud SaaS or hybrid deployments.</Note> |
| 7 | + |
| 8 | +Self-hosted LangGraph Platform instances store all information locally and will never send sensitive information outside of your network. We currently only track platform usage for billing purposes according to the entitlements in your order. To better support our customers remotely, we do require egress to `https://beacon.langchain.com`. |
| 9 | + |
| 10 | +In the future, we will be introducing support diagnostics to help us ensure that the LangGraph Platform is running at an optimal level within your environment. |
| 11 | + |
| 12 | +<Warning>This will require egress to `https://beacon.langchain.com` from your network. If using an API key, you will also need to allow egress to `https://api.smith.langchain.com` or `https://eu.api.smith.langchain.com` for API key verification.</Warning> |
| 13 | + |
| 14 | +Generally, data that we send to Beacon can be categorized as follows: |
| 15 | + |
| 16 | +- **Subscription Metrics** |
| 17 | + - Subscription metrics are used to determine level of access and utilization of LangSmith. This includes, but are not limited to: |
| 18 | + - Nodes Executed |
| 19 | + - Runs Executed |
| 20 | + - License Key Verification |
| 21 | +- **Operational Metadata** |
| 22 | + - This metadata will contain and collect the above subscription metrics to assist with remote support, allowing the LangChain team to diagnose and troubleshoot performance issues more effectively and proactively. |
| 23 | + |
| 24 | +## Example Payloads |
| 25 | + |
| 26 | +In an effort to maximize transparency, we provide sample payloads here: |
| 27 | + |
| 28 | +### License Verification ([Enterprise](/langgraph-platform/plans)) |
| 29 | + |
| 30 | +**Endpoint:** |
| 31 | + |
| 32 | +`POST beacon.langchain.com/v1/beacon/verify` |
| 33 | + |
| 34 | +**Request:** |
| 35 | + |
| 36 | +```json |
| 37 | +{ |
| 38 | + "license": "<YOUR_LICENSE_KEY>" |
| 39 | +} |
| 40 | +``` |
| 41 | + |
| 42 | +**Response:** |
| 43 | + |
| 44 | +```json |
| 45 | +{ |
| 46 | + "token": "Valid JWT" // Short-lived JWT token to avoid repeated license checks |
| 47 | +} |
| 48 | +``` |
| 49 | + |
| 50 | +### API key verification ([LangSmith API key](https://smith.langchain.com/)) |
| 51 | + |
| 52 | +**Endpoint:** |
| 53 | +`POST api.smith.langchain.com/auth` |
| 54 | + |
| 55 | +**Request:** |
| 56 | + |
| 57 | +```json |
| 58 | +"Headers": { |
| 59 | + X-Api-Key: <YOUR_API_KEY> |
| 60 | +} |
| 61 | +``` |
| 62 | + |
| 63 | +**Response:** |
| 64 | + |
| 65 | +```json |
| 66 | +{ |
| 67 | + "org_config": { |
| 68 | + "org_id": "3a1c2b6f-4430-4b92-8a5b-79b8b567bbc1", |
| 69 | + ... // Additional organization details |
| 70 | + } |
| 71 | +} |
| 72 | +``` |
| 73 | + |
| 74 | +### Usage Reporting |
| 75 | + |
| 76 | +**Endpoint:** |
| 77 | + |
| 78 | +`POST beacon.langchain.com/v1/metadata/submit` |
| 79 | + |
| 80 | +**Request:** |
| 81 | + |
| 82 | +```json |
| 83 | +{ |
| 84 | + "license": "<YOUR_LICENSE_KEY>", |
| 85 | + "from_timestamp": "2025-01-06T09:00:00Z", |
| 86 | + "to_timestamp": "2025-01-06T10:00:00Z", |
| 87 | + "tags": { |
| 88 | + "langgraph.python.version": "0.1.0", |
| 89 | + "langgraph_api.version": "0.2.0", |
| 90 | + "langgraph.platform.revision": "abc123", |
| 91 | + "langgraph.platform.variant": "standard", |
| 92 | + "langgraph.platform.host": "host-1", |
| 93 | + "langgraph.platform.tenant_id": "3a1c2b6f-4430-4b92-8a5b-79b8b567bbc1", |
| 94 | + "langgraph.platform.project_id": "c5b5f53a-4716-4326-8967-d4f7f7799735", |
| 95 | + "langgraph.platform.plan": "enterprise", |
| 96 | + "user_app.uses_indexing": "true", |
| 97 | + "user_app.uses_custom_app": "false", |
| 98 | + "user_app.uses_custom_auth": "true", |
| 99 | + "user_app.uses_thread_ttl": "true", |
| 100 | + "user_app.uses_store_ttl": "false" |
| 101 | + }, |
| 102 | + "measures": { |
| 103 | + "langgraph.platform.runs": 150, |
| 104 | + "langgraph.platform.nodes": 450 |
| 105 | + }, |
| 106 | + "logs": [] |
| 107 | +} |
| 108 | +``` |
| 109 | + |
| 110 | +**Response:** |
| 111 | + |
| 112 | +```json |
| 113 | +"204 No Content" |
| 114 | +``` |
| 115 | + |
| 116 | +## Our Commitment |
| 117 | + |
| 118 | +LangChain will not store any sensitive information in the Subscription Metrics or Operational Metadata. Any data collected will not be shared with a third party. If you have any concerns about the data being sent, please reach out to your account team. |
0 commit comments