You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS X-Ray采样图表无数据排查及Lambda(C#)采样规则代码配置咨询

Troubleshooting X-Ray Sampling Rule Charts & C# Lambda Code Changes

Let's walk through fixing your sampling rule chart issue and clarify when (and how) to adjust your C# Lambda code.

First: Diagnose Why Your Sampling Rule Chart Has No Data

Before touching code, let's rule out common configuration issues:

  • Double-check rule matching criteria: Ensure your sampling rule's service name, HTTP method, API path, or Lambda ARN exactly matches your actual traffic. For example:
    • API Gateway's service name is API Gateway (not a custom name)
    • Lambda's service type is lambda, and the function name/ARN is correctly entered
  • Verify rule priority: Sampling rules run from lowest priority number (highest precedence) to highest. If your custom rule has a higher number than the default X-Ray rule (priority 1000), the default rule might be handling traffic first. Lower your custom rule's priority to take precedence.
  • Confirm traces are being generated: Head to the X-Ray Console's Traces tab and search for traces matching your rule's criteria. If no traces exist at all:
    • Ensure your Lambda execution role has the AWSXRayDaemonWriteAccess policy
    • Double-check that X-Ray tracing is enabled for both your Lambda function and the API Gateway stage
  • Wait for data propagation: X-Ray charts can take 5-15 minutes to populate after traffic flows—don't expect instant results.
  • Check for code-based sampling conflicts: If you added local sampling rules in your code, they'll override console-defined centralized rules. Temporarily comment out any custom sampling code to test if the console rule starts working.

Do You Need to Modify Code After Creating a Sampling Rule?

Not always—it depends on how you're configuring sampling:

  • Console/CLI-defined centralized rules: The X-Ray SDK for .NET automatically pulls these rules from the X-Ray service by default. No code changes are needed unless you've explicitly overridden the default sampler.
  • Code-defined local sampling rules: These hardcoded rules take priority over centralized rules. If you want console rules to work, you'll need to adjust your code to use the centralized sampler instead.

C# Lambda Code Changes (If Required)

If you're using local sampling or need to ensure centralized rules are respected, make these adjustments:

  1. Update X-Ray SDK packages: Ensure you're using the latest versions of AWSSDK.XRay (≥2.3.0) and Amazon.Lambda.Core (≥1.2.0)—older versions don't support centralized sampling.

  2. Remove local sampling configuration: If you added code like this, comment or delete it:

// Remove this local sampling setup
var localRules = new List<SamplingRule>
{
    new SamplingRule
    {
        RuleName = "MyLocalRule",
        Priority = 1,
        FixedRate = 0.5,
        ReservoirSize = 10,
        ServiceName = "MyLambdaFunction"
    }
};
var localSampler = new LocalSampler(localRules);
AWSXRayRecorder.Instance.SetSampler(localSampler);
  1. Revert to the default centralized sampler: The SDK uses CentralizedSampler by default, so if you manually set a sampler, remove that line to let it pull rules from the X-Ray service:
// Remove any custom sampler assignments to use the default centralized sampler
// AWSXRayRecorder.Instance.SetSampler(...);
  1. Add fallback rules (optional): If you want a backup rule for when centralized rules can't be pulled, configure it like this:
var fallbackRule = new SamplingRule
{
    RuleName = "FallbackRule",
    Priority = 1000,
    FixedRate = 0.1, // Sample 10% of traffic as fallback
    ReservoirSize = 5
};
var centralizedSampler = new CentralizedSampler(fallbackRule);
AWSXRayRecorder.Instance.SetSampler(centralizedSampler);
  1. Ensure Lambda role has sampling permissions: Add this policy to your Lambda execution role to let the SDK pull centralized rules:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "xray:GetSamplingRules",
                "xray:GetSamplingTargets"
            ],
            "Resource": "*"
        }
    ]
}

内容的提问来源于stack exchange,提问作者Jahan Ahmed Abbasi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 12:42:32