Skip to content

DescribeTaskQueueAsync does not return stats #9436

@cfauchere

Description

@cfauchere

Expected Behavior

DescribeTaskQueueResponse.Stats is populated

Actual Behavior

DescribeTaskQueueResponse.Stats is null

Steps to Reproduce the Problem

var request = new DescribeTaskQueueRequest
{
    Namespace = config.Namespace,
    TaskQueue = new TaskQueue { Name = queueName },
    TaskQueueType = queueType,
    ReportStats = true
};

var response = await client.WorkflowService.DescribeTaskQueueAsync(
    request,
    new RpcOptions { CancellationToken = ct });

response.Stats is null

The following block seems to retrieve what we need. But it leverages obsolete objects/properties/API.

#pragma warning disable CS0612
var request = new DescribeTaskQueueRequest
{
    Namespace = config.Namespace,
    TaskQueue = new TaskQueue { Name = queueName },
    TaskQueueType = queueType,
    ApiMode = DescribeTaskQueueMode.Enhanced,
    ReportStats = true,
    ReportPollers = true,
};

var response = await client.WorkflowService.DescribeTaskQueueAsync(
    request,
    new RpcOptions { CancellationToken = ct });

var typeName = queueType == TaskQueueType.Workflow ? "workflow" : "activity";
long backlog = 0;
int pollers = 0;

if (response.VersionsInfo.TryGetValue("", out var versionInfo)
    && versionInfo.TypesInfo.TryGetValue((int)queueType, out var typeInfo))
{
    backlog = typeInfo.Stats?.ApproximateBacklogCount ?? 0;
    pollers = typeInfo.Pollers.Count;
}
#pragma warning restore CS0612

Specifications

With server 1.27.1 or 1.26.2
SDK: dotnet 1.8.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions