Skip to content

DescribeTaskQueueAsync does not return stats #634

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

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions