Skip to content

Commit 31fb7d1

Browse files
authored
feat: add auto-instrumentation to langchain agent template (aws#835)
1 parent bb9de25 commit 31fb7d1

5 files changed

Lines changed: 16 additions & 0 deletions

File tree

β€Žsrc/assets/__tests__/__snapshots__/assets.snapshot.test.ts.snapβ€Ž

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1167,6 +1167,7 @@ Thumbs.db
11671167
exports[`Assets Directory Snapshots > Python framework assets > python/python/a2a/langchain_langgraph/base/main.py should match snapshot 1`] = `
11681168
"from langchain_core.tools import tool
11691169
from langgraph.prebuilt import create_react_agent
1170+
from opentelemetry.instrumentation.langchain import LangchainInstrumentor
11701171
from a2a.server.agent_execution import AgentExecutor, RequestContext
11711172
from a2a.server.events import EventQueue
11721173
from a2a.server.tasks import TaskUpdater
@@ -1175,6 +1176,8 @@ from a2a.utils import new_task
11751176
from bedrock_agentcore.runtime import serve_a2a
11761177
from model.load import load_model
11771178
1179+
LangchainInstrumentor().instrument()
1180+
11781181
11791182
@tool
11801183
def add_numbers(a: int, b: int) -> int:
@@ -1382,6 +1385,7 @@ dependencies = [
13821385
{{/if}}{{#if (eq modelProvider "Gemini")}}"langchain-google-genai >= 2.0.0",
13831386
{{/if}}{{#if (eq modelProvider "OpenAI")}}"langchain-openai >= 0.2.0",
13841387
{{/if}}"aws-opentelemetry-distro",
1388+
"opentelemetry-instrumentation-langchain",
13851389
"bedrock-agentcore[a2a] >= 1.0.3",
13861390
"botocore[crt] >= 1.35.0",
13871391
"langgraph >= 0.2.0",
@@ -2526,6 +2530,7 @@ exports[`Assets Directory Snapshots > Python framework assets > python/python/ht
25262530
from langchain_core.messages import HumanMessage
25272531
from langgraph.prebuilt import create_react_agent
25282532
from langchain.tools import tool
2533+
from opentelemetry.instrumentation.langchain import LangchainInstrumentor
25292534
from bedrock_agentcore.runtime import BedrockAgentCoreApp
25302535
from model.load import load_model
25312536
{{#if hasGateway}}
@@ -2534,6 +2539,8 @@ from mcp_client.client import get_all_gateway_mcp_client
25342539
from mcp_client.client import get_streamable_http_mcp_client
25352540
{{/if}}
25362541
2542+
LangchainInstrumentor().instrument()
2543+
25372544
app = BedrockAgentCoreApp()
25382545
log = app.logger
25392546
@@ -2825,6 +2832,7 @@ readme = "README.md"
28252832
requires-python = ">=3.10"
28262833
dependencies = [
28272834
"aws-opentelemetry-distro",
2835+
"opentelemetry-instrumentation-langchain",
28282836
"langgraph >= 1.0.2",
28292837
"mcp >= 1.19.0",
28302838
"langchain-mcp-adapters >= 0.1.11",

β€Žsrc/assets/python/a2a/langchain_langgraph/base/main.pyβ€Ž

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from langchain_core.tools import tool
22
from langgraph.prebuilt import create_react_agent
3+
from opentelemetry.instrumentation.langchain import LangchainInstrumentor
34
from a2a.server.agent_execution import AgentExecutor, RequestContext
45
from a2a.server.events import EventQueue
56
from a2a.server.tasks import TaskUpdater
@@ -8,6 +9,8 @@
89
from bedrock_agentcore.runtime import serve_a2a
910
from model.load import load_model
1011

12+
LangchainInstrumentor().instrument()
13+
1114

1215
@tool
1316
def add_numbers(a: int, b: int) -> int:

β€Žsrc/assets/python/a2a/langchain_langgraph/base/pyproject.tomlβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ dependencies = [
1515
{{/if}}{{#if (eq modelProvider "Gemini")}}"langchain-google-genai >= 2.0.0",
1616
{{/if}}{{#if (eq modelProvider "OpenAI")}}"langchain-openai >= 0.2.0",
1717
{{/if}}"aws-opentelemetry-distro",
18+
"opentelemetry-instrumentation-langchain",
1819
"bedrock-agentcore[a2a] >= 1.0.3",
1920
"botocore[crt] >= 1.35.0",
2021
"langgraph >= 0.2.0",

β€Žsrc/assets/python/http/langchain_langgraph/base/main.pyβ€Ž

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from langchain_core.messages import HumanMessage
33
from langgraph.prebuilt import create_react_agent
44
from langchain.tools import tool
5+
from opentelemetry.instrumentation.langchain import LangchainInstrumentor
56
from bedrock_agentcore.runtime import BedrockAgentCoreApp
67
from model.load import load_model
78
{{#if hasGateway}}
@@ -10,6 +11,8 @@
1011
from mcp_client.client import get_streamable_http_mcp_client
1112
{{/if}}
1213

14+
LangchainInstrumentor().instrument()
15+
1316
app = BedrockAgentCoreApp()
1417
log = app.logger
1518

β€Žsrc/assets/python/http/langchain_langgraph/base/pyproject.tomlβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ readme = "README.md"
1010
requires-python = ">=3.10"
1111
dependencies = [
1212
"aws-opentelemetry-distro",
13+
"opentelemetry-instrumentation-langchain",
1314
"langgraph >= 1.0.2",
1415
"mcp >= 1.19.0",
1516
"langchain-mcp-adapters >= 0.1.11",

0 commit comments

Comments
 (0)