fauna / fauna-dotnet

Fauna FQL v10 driver for C#
Mozilla Public License 2.0
1 stars 1 forks source link

chore(perf-tests): Improve perf metrics for paginating queries #179

Closed adambollen closed 1 month ago

adambollen commented 1 month ago

Description

When a perf test is going to paginate, it will now paginate via three different methods: using client.QueryAsync() with the after token; using PaginateAsync(); and using FlattenAsync(). Also, when reporting metrics on the overhead, it will now divide by the number of queries observed in the StatsCollector to make comparing the various query perf numbers clearer.

Motivation and context

How was the change tested?

Ran it a number of times locally; the new output will automatically be picked up and sent to #alerts-driver-perf in Slack.

Screenshots (if appropriate):

Change types

Checklist:


By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

github-actions[bot] commented 1 month ago

Summary

Summary ||| |:---|:---| | Generated on: | 10/03/2024 - 20:44:13 | | Parser: | OpenCover | | Assemblies: | 1 | | Classes: | 124 | | Files: | 100 | | **Line coverage:** | 81.5% (3234 of 3967) | | Covered lines: | 3234 | | Uncovered lines: | 733 | | Coverable lines: | 3967 | | Total lines: | 8853 | | **Branch coverage:** | 70.3% (1049 of 1492) | | Covered branches: | 1049 | | Total branches: | 1492 | | **Method coverage:** | [Feature is only available for sponsors](https://reportgenerator.io/pro) | | Tag: | d310944 |

Coverage

Fauna - 81.5% |**Name**|**Line**|**Branch**| |:---|---:|---:| |**Fauna**|**81.5%**|**70.3%**| |Fauna.BaseClient|81.4%|68.7%| |Fauna.Client|74%|52.9%| |Fauna.Configuration|100%|100%| |Fauna.Core.Connection|94.1%|72.2%| |Fauna.Core.Endpoints|100%|| |Fauna.Core.ErrorInfo|100%|| |Fauna.Core.QueryFailure|100%|66.6%| |Fauna.Core.QueryOptions|82.1%|81.8%| |Fauna.Core.QueryResponse|70%|77.2%| |Fauna.Core.QueryStats|57.1%|| |Fauna.Core.QuerySuccess`1|69.2%|50%| |Fauna.Core.RetryConfiguration|100%|100%| |Fauna.Core.Stats|100%|| |Fauna.Core.StatsCollector|86.2%|100%| |Fauna.Core.StreamEnumerable`1|100%|66.6%| |Fauna.Exceptions.AbortException|100%|83.3%| |Fauna.Exceptions.AuthenticationException|100%|| |Fauna.Exceptions.AuthorizationException|100%|| |Fauna.Exceptions.BadGatewayException|0%|| |Fauna.Exceptions.ConstraintFailure|100%|| |Fauna.Exceptions.ConstraintFailureException|100%|| |Fauna.Exceptions.ContendedTransactionException|100%|| |Fauna.Exceptions.ExceptionHandler|84.3%|89.3%| |Fauna.Exceptions.FaunaException|25%|| |Fauna.Exceptions.InvalidRequestException|100%|| |Fauna.Exceptions.NetworkException|100%|| |Fauna.Exceptions.NullDocumentException|100%|100%| |Fauna.Exceptions.ProtocolException|0%|| |Fauna.Exceptions.QueryCheckException|100%|| |Fauna.Exceptions.QueryRuntimeException|100%|| |Fauna.Exceptions.QueryTimeoutException|100%|| |Fauna.Exceptions.SerializationException|100%|| |Fauna.Exceptions.ServiceException|80.9%|| |Fauna.Exceptions.ThrottlingException|42.8%|| |Fauna.Exceptions.TimeoutException|100%|| |Fauna.IQueryFragmentExtensions|0%|| |Fauna.Linq.DataContext|84.1%|87.5%| |Fauna.Linq.DataContextBuilder`1|92.1%|86.6%| |Fauna.Linq.IntermediateQueryHelpers|80%|83.3%| |Fauna.Linq.IPipelineExecutor|55.2%|28.2%| |Fauna.Linq.IQuerySource|0%|0%| |Fauna.Linq.LookupTable|40%|16.6%| |Fauna.Linq.MappedDeserializer`2|75%|| |Fauna.Linq.Pipeline|100%|100%| |Fauna.Linq.ProjectionAnalysisVisitor|92.3%|50%| |Fauna.Linq.ProjectionDeserializer|80.9%|58.3%| |Fauna.Linq.ProjectionRewriteVisitor|96.9%|90%| |Fauna.Linq.QuerySource|100%|| |Fauna.Linq.QuerySource`1|93.1%|88.8%| |Fauna.Linq.QuerySourceExtensions|25%|50%| |Fauna.Linq.SubQuerySwitch|56.7%|19.4%| |Fauna.Mapping.CollAttribute|100%|| |Fauna.Mapping.FieldAttribute|100%|| |Fauna.Mapping.FieldInfo|100%|91.6%| |Fauna.Mapping.FieldName|100%|100%| |Fauna.Mapping.IdAttribute|100%|| |Fauna.Mapping.IgnoreAttribute|100%|| |Fauna.Mapping.MappingContext|100%|100%| |Fauna.Mapping.MappingInfo|97.6%|100%| |Fauna.Mapping.TsAttribute|100%|| |Fauna.Query|100%|| |Fauna.QueryArr|58.6%|50%| |Fauna.QueryExpr|80%|50%| |Fauna.QueryLiteral|86.1%|62.5%| |Fauna.QueryObj|32.1%|0%| |Fauna.QueryStringHandler|100%|100%| |Fauna.QueryVal|79.5%|50%| |Fauna.Serialization.BaseSerializer`1|62.5%|20%| |Fauna.Serialization.BooleanSerializer|92.3%|83.3%| |Fauna.Serialization.ByteSerializer|92.3%|83.3%| |Fauna.Serialization.ClassSerializer`1|85.9%|83.3%| |Fauna.Serialization.DateOnlySerializer|92.3%|83.3%| |Fauna.Serialization.DateTimeOffsetSerializer|92.3%|83.3%| |Fauna.Serialization.DateTimeSerializer|92.3%|83.3%| |Fauna.Serialization.DictionarySerializer`1|81%|72.2%| |Fauna.Serialization.DocumentSerializer|83.7%|79.1%| |Fauna.Serialization.DoubleSerializer|92.3%|83.3%| |Fauna.Serialization.DynamicSerializer|82.9%|68%| |Fauna.Serialization.FloatSerializer|92.3%|83.3%| |Fauna.Serialization.InternalDocument|80%|56.2%| |Fauna.Serialization.IntSerializer|92.3%|83.3%| |Fauna.Serialization.ListSerializer`1|85%|66.6%| |Fauna.Serialization.LongSerializer|92.3%|83.3%| |Fauna.Serialization.ModuleSerializer|69.2%|50%| |Fauna.Serialization.NamedDocumentSerializer|83.7%|79.1%| |Fauna.Serialization.NamedRefSerializer|77.7%|70%| |Fauna.Serialization.NullableDocumentSerializer`1|86.4%|75%| |Fauna.Serialization.NullableSerializer`1|100%|100%| |Fauna.Serialization.NullableStructSerializer`1|70%|100%| |Fauna.Serialization.PageSerializer`1|92.1%|87.5%| |Fauna.Serialization.QueryArrSerializer|0%|0%| |Fauna.Serialization.QueryExprSerializer|77.7%|66.6%| |Fauna.Serialization.QueryLiteralSerializer|55.5%|50%| |Fauna.Serialization.QueryObjSerializer|69.2%|50%| |Fauna.Serialization.QuerySerializer|60%|50%| |Fauna.Serialization.QueryValSerializer|69.2%|50%| |Fauna.Serialization.RefSerializer|77.7%|70%| |Fauna.Serialization.SByteSerializer|92.3%|83.3%| |Fauna.Serialization.Serializer|93.2%|83.6%| |Fauna.Serialization.ShortSerializer|92.3%|83.3%| |Fauna.Serialization.StreamSerializer|57.1%|50%| |Fauna.Serialization.StringSerializer|92.8%|87.5%| |Fauna.Serialization.UIntSerializer|92.3%|83.3%| |Fauna.Serialization.UShortSerializer|92.3%|83.3%| |Fauna.Serialization.Utf8FaunaReader|72.6%|77.8%| |Fauna.Serialization.Utf8FaunaWriter|90.1%|| |Fauna.StreamOptions|61.5%|| |Fauna.Types.BaseDocument|53.3%|| |Fauna.Types.Document|100%|| |Fauna.Types.Event`1|85.4%|66.6%| |Fauna.Types.Module|52.6%|20%| |Fauna.Types.NamedDocument|100%|| |Fauna.Types.NamedRef|100%|| |Fauna.Types.NonNullDocument`1|100%|| |Fauna.Types.NullableDocument`1|100%|| |Fauna.Types.NullDocument`1|92.3%|75%| |Fauna.Types.Page`1|100%|| |Fauna.Types.Ref|100%|| |Fauna.Types.Stream|66.6%|35.7%| |Fauna.Util.DefaultExpressionSwitch`1|0%|| |Fauna.Util.Expressions|100%|100%| |Fauna.Util.ExpressionSwitch`1|84.8%|75.5%| |Fauna.Util.Extensions.PaginationExtensions|100%|100%| |Fauna.Util.Extensions.TypeExtensions|93.3%|81.2%|

Delta Summary

Generated on: 10/03/2024 - 20:44
Description Previous Current Delta
Coverage date: 10/03/2024 - 20:43 10/03/2024 - 20:44
Tag: main d310944
Line coverage: 81.5% 81.5% 0.0%
Covered lines: 3234 3234 0
Coverable lines: 3967 3967 0
Total lines: 14858 14858 0
Branch coverage: 70.3% 70.3% 0.0%
Covered branches: 1049 1049 0
Total branches: 1492 1492 0
Method coverage: Feature is only available for sponsors