microsoft / microsoft/microsoft-performance-toolkit-sdk

Engine BuildTable ITableResult should make it intuitive to access table data

Open
#202 1 comment 0 reactions 1 assignee View on GitHub

@mslukebo is already working on this.

Since Apr 29, 2022.

enhancement untriaged
Dominant language
C#
Stars
239
Forks
78
Avg merge
4d 3h
Merged PRs (30d)
2

Description

Is your feature request an entirely new concept?
Accessing table data is not new, but I didn't find it intuitive and had to ask the SDK experts for a solution.

Is your feature request related to an existing component?
Yes Engine BuildTable ITableResult

Is your feature request related to a problem? Please describe.
Our Unit Tests need to be able to find bugs & increase code coverage by testing not only RuntimeExecutionResults.QueryOutput but the tables used by the UI code. I have found a lot of bugs in the table code and projectors by only using WPA UI - that we should be able to find faster using Unit Tests on tables. WPA UI slows down dev loop and can throw a lot of unrelated exceptions wasting time in the debugger.

However, accessing table data was not intuitive (to me)

Describe the solution you'd like
@mslukebo pointed at an example
In Perfetto UT we also implemented some extensions to ITableResult based on recommendations

More refined versions of these should be baked into the SDK.

Also, side note - in using Kusto for query data, they had an intuitive solution I liked and that is generic. Just putting here as an example for inspiration. Kusto returns something that implements IDataReader. IDataReader exposes similar concepts to what the SDK is exposing in that it exposes columns and arrays of object data in a column with a row iterator. Things like FieldCount, Columns via GetName, GetFieldType, and ToEnumerableObjectArray via LINQ which made it easy to work with the data

Describe alternatives you've considered
See extensions we have already implemented. But this should be easy and part of SDK

Additional context

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.