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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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