使用说明
万事达卡API演示:结合OpenTelemetry与Elastic可观测性
此演示展示了Mastercard API与OpenTelemetry的集成,实现了数据(指标、追踪、日志)流向Elastic Serverless的全可观测性,并采用了MCP(模型上下文协议)工作流进行智能监控。
🏗️ 建筑学
┌─────────────────────┐
│ Mastercard APIs │
│ - Open Banking │
│ - Merchant ID │
│ - Fraud Detection │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ Demo Application │
│ (Python/FastAPI) │
│ + OpenTelemetry │
└──────────┬──────────┘
│
├─► Traces
├─► Metrics
└─► Logs
│
▼
┌─────────────────────┐
│ Elastic Serverless │
│ - APM │
│ - Logs Explorer │
│ - Metrics │
└──────────┬──────────┘
│
▼
┌─────────────────────┐
│ MCP Workflows │
│ - Query traces │
│ - Analyze metrics │
│ - Debug issues │
└─────────────────────┘
🚀 功能
- 万事达卡API集成带有认证的真实世界API调用
- OpenTelemetry全面的分布式追踪仪器化
- **Elastic APM(Elastic 应用性能监控)**自动性能监控
- MCP 工作流通过Cursor实现的智能可观测性查询
- 演示场景多个应用场景(银行、欺诈检测、商户)
📋 前提条件
- Python 3.10及以上版本
- 万事达开发者账户 & API密钥
- 弹性无服务器集群(在.env文件中配置)
- 支持MCP的光标
🔧 快速入门
-
安装依赖项
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt -
配置环境
cp env.example .env # Edit .env with your Elastic credentials # Mock mode is enabled by default for Mastercard APIs -
运行演示应用程序
source venv/bin/activate python3 demo_app.py -
生成测试流量
# In a new terminal, with venv activated source venv/bin/activate python3 load_test.py --requests 50这会在Elastic中创建追踪、指标和日志!
-
在游标中使用MCP进行查询
Show me the latest traces from mastercard-demo service List all Elasticsearch indices What's the average response time for API calls? -
访问API文档
http://localhost:8000/docs
🔑 环境变量
MASTERCARD_API_KEY您的万事达卡API密钥MASTERCARD_CONSUMER_KEYOAuth 消费者密钥MASTERCARD_PRIVATE_KEY_PATH您.p12文件的路径ELASTIC_OTLP_ENDPOINT弹性OTLP终端(或:弹性开放遥测传输协议终端)ELASTIC_OTEL_API_KEY弹性API密钥,用于遥测ELASTICSEARCH_URLElasticsearch 集群 URLELASTICSEARCH_API_KEY查询可观测性数据的API密钥
🎯 演示终端点
1. 开放银行流程
curl http://localhost:8000/api/banking/accounts
2. 商户查询
curl http://localhost:8000/api/merchant/locate?query=coffee
3. 欺诈检测
curl -X POST http://localhost:8000/api/fraud/check \
-H "Content-Type: application/json" \
-d '{"transaction_id": "txn_123", "amount": 1000}'
🔍 MCP 工作流
查看最近轨迹
使用Cursor MCP进行查询:
Show me the latest traces from the Mastercard demo
分析性能
What's the average response time for merchant API calls?
调试错误
Show me any errors in the last hour for the fraud detection service
📊 可观测性功能
- 分布式追踪查看跨服务的完整请求流程
- 自定义指标跟踪API调用、响应时间、错误率
- 结构化日志通过trace_id与追踪记录相关联
- 服务地图在 Elastic APM 中可视化依赖关系
- 实时警报根据指标设置警报
🏃 运行示例
# Run basic demo
python demo_app.py
# Run with specific scenario
python scenarios/banking_demo.py
# Load test with telemetry
python load_test.py --requests 100
📖 文档
- 快速入门指南 - 5分钟内起床并开始行动
- MCP 工作流 - 可观测性查询示例
- 综合MCP工作流程 - 新 同时使用Mastercard和Elasticsearch MCP
- 万事达卡API文档
- OpenTelemetry Python(中文可译为“OpenTelemetry的Python实现”或“用于Python的OpenTelemetry”)
- Elastic APM(Elastic 应用性能监控)
- MCP协议
🤝 贡献
这是一个演示项目。欢迎随意扩展,加入更多Mastercard API或可观测性功能!
📝 许可证
MIT 许可证 - 详情请参阅 LICENSE 文件