支付API监控演示

集成Mastercard API与OpenTelemetry的演示项目,通过Elastic Serverless实现全栈可观测性(指标、追踪、日志),支持MCP工作流进行智能监控。

  • by poulsbopete
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 poulsbopete/mc-mcp

使用说明

万事达卡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的光标

🔧 快速入门

  1. 安装依赖项

    python3 -m venv venv
    source venv/bin/activate  # On Windows: venv\Scripts\activate
    pip install -r requirements.txt
    
  2. 配置环境

    cp env.example .env
    # Edit .env with your Elastic credentials
    # Mock mode is enabled by default for Mastercard APIs
    
  3. 运行演示应用程序

    source venv/bin/activate
    python3 demo_app.py
    
  4. 生成测试流量

    # In a new terminal, with venv activated
    source venv/bin/activate
    python3 load_test.py --requests 50
    

    这会在Elastic中创建追踪、指标和日志!

  5. 在游标中使用MCP进行查询

    Show me the latest traces from mastercard-demo service
    List all Elasticsearch indices
    What's the average response time for API calls?
    
  6. 访问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 集群 URL
  • ELASTICSEARCH_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

📖 文档

🤝 贡献

这是一个演示项目。欢迎随意扩展,加入更多Mastercard API或可观测性功能!

📝 许可证

MIT 许可证 - 详情请参阅 LICENSE 文件