Skip to content

Commit

Permalink
Update ECS.NET documentation on elastic.co (#301)
Browse files Browse the repository at this point in the history
Co-authored-by: Brandon Morelli <[email protected]>
  • Loading branch information
Mpdreamz and bmorelli25 committed May 9, 2023
1 parent ec288ce commit 8c0e2e2
Show file tree
Hide file tree
Showing 24 changed files with 1,762 additions and 560 deletions.
221 changes: 221 additions & 0 deletions docs/data-shippers/benchmark-dotnet.asciidoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,221 @@
[[benchmark-dotnet-data-shipper]]
=== BenchmarkDotnet Exporter

An exporter for https://github.com/dotnet/BenchmarkDotNet[BenchmarkDotnet] that will index benchmarking results directly into Elasticsearch.

==== Installation

Add a reference to the http://nuget.org/packages/Elastic.CommonSchema.BenchmarkDotNetExporter[Elastic.CommonSchema.BenchmarkDotNetExporter] package:

[source,xml]
[subs="attributes"]
----
<PackageReference Include="Elastic.CommonSchema.BenchmarkDotNetExporter" Version="{ecs-logging-dotnet-version}" />
----

==== Usage

[source,csharp]
----
var options = new ElasticsearchBenchmarkExporterOptions(url)
{
GitBranch = "externally-provided-branch",
GitCommitMessage = "externally provided git commit message",
GitRepositoryIdentifier = "repository"
};
var exporter = new ElasticsearchBenchmarkExporter(options);
var config = CreateDefaultConfig().With(exporter);
BenchmarkRunner.Run(typeof(Md5VsSha256), config);
----

The code snippet above configures the `ElasticsearchBenchmarkExporter` with the supplied `ElasticsearchBenchmarkExporterOptions`. It is possible to configure the exporter to use https://www.elastic.co/cloud/[Elastic Cloud] as follows:

[source,csharp]
----
var options = new ElasticsearchBenchmarkExporterOptions(url)
{
CloudId = "CLOUD_ID_HERE"
};
----

Example _source from a search in Elasticsearch after a benchmark run:

[source,json]
----
{
"_index":"benchmark-dotnet-2020-01-01",
"_type":"_doc",
"_id":"pfFAh28B14pBZI_VO098",
"_score":1.0,
"_source":{
"agent":{
"git":{
"branch_name":"externally-provided-branch",
"commit_message":"externally provided git commit message",
"repository":"repository"
},
"language":{
"jit_info":"RyuJIT",
"dot_net_sdk_version":"3.0.101",
"benchmark_dot_net_caption":"BenchmarkDotNet",
"has_ryu_jit":true,
"build_configuration":"RELEASE",
"benchmark_dot_net_version":"0.12.0",
"version":".NET Core 3.0.1 (CoreCLR 4.700.19.47502, CoreFX 4.700.19.51008)"
},
"type":"Elastic.CommonSchema.BenchmarkDotNetExporter",
"version":"1.0.0+7cedae2aaa06092ea253155279b835cee6160b3a"
},
"os":{
"name":"Linux",
"version":"ubuntu 18.10",
"platform":"unix"
},
"message":null,
"benchmark":{
"q1":3632.625,
"lower_outliers":[],
"q3":5047.625,
"confidence_interval":{
"margin":14613.282591693971,
"level":12,
"mean":4123.291666666667,
"lower":-10489.990925027305,
"n":3,
"standard_error":462.4594877151704
},
"percentiles":{
"p0":3632.625,
"p67":4151.345,
"p25":3661.125,
"p100":5047.625,
"p90":4776.025000000001,
"p80":4504.425,
"p50":3689.625,
"p85":4640.225,
"p95":4911.825
},
"memory":{
"bytes_allocated_per_operation":112,
"total_operations":4,
"gen2_collections":0,
"gen1_collections":0,
"gen0_collections":0
},
"max":5047.625,
"interquartile_range":1415,
"all_outliers":[],
"upper_fence":7170.125,
"standard_deviation":801.0033291649501,
"kurtosis":0.6666666666666661,
"n":3,
"standard_error":462.4594877151704,
"min":3632.625,
"median":3689.625,
"upper_outliers":[],
"variance":641606.3333333333,
"mean":4123.291666666667,
"lower_fence":1510.125,
"skewness":0.3827086238595402
},
"@timestamp":"2020-01-08T22:22:10.7917398+00:00",
"host":{
"hardware_timer_kind":"Unknown",
"physical_processor_count":1,
"logical_core_count":12,
"in_docker":false,
"processor_name":"Intel(R) Core(TM) i9-8950HK CPU @ 2.90GHz",
"chronometer_frequency_hertz":1000000000,
"has_attached_debugger":false,
"physical_core_count":6,
"architecture":"X64"
},
"log.level":null,
"event":{
"duration":1385324200,
"measurement_stages":[
{
"operations":2,
"iteration_mode":"Overhead",
"iteration_stage":"Jitting"
},
{
"operations":2,
"iteration_mode":"Workload",
"iteration_stage":"Jitting"
},
{
"operations":4,
"iteration_mode":"Overhead",
"iteration_stage":"Warmup"
},
{
"operations":4,
"iteration_mode":"Overhead",
"iteration_stage":"Actual"
},
{
"operations":4,
"iteration_mode":"Workload",
"iteration_stage":"Warmup"
},
{
"operations":4,
"iteration_mode":"Workload",
"iteration_stage":"Actual"
},
{
"operations":4,
"iteration_mode":"Workload",
"iteration_stage":"Result"
}
],
"job_config":{
"run_time":".NET Core 3.0",
"jit":"Default",
"launch":{
"unroll_factor":2,
"max_iteration_count":0,
"launch_count":1,
"iteration_count":3,
"run_strategy":"Throughput",
"iteration_time_in_milliseconds":0,
"warm_count":3,
"max_warmup_iteration_count":0,
"invocation_count":4,
"min_warmup_iteration_count":0,
"min_iteration_count":0
},
"id":"ShortRun",
"gc":{
"heap_affinitize_mask":0,
"server":false,
"no_affinitize":false,
"allow_very_large_objects":false,
"retain_vm":false,
"cpu_groups":false,
"concurrent":false,
"heap_count":0,
"force":false
},
"platform":"AnyCpu"
},
"original":"Md5VsSha256.Sha256: ShortRun(Runtime=.NET Core 3.0, InvocationCount=4, IterationCount=3, LaunchCount=1, UnrollFactor=2, WarmupCount=3) [N=1000]",
"method":"Elastic.CommonSchema.BenchmarkDotNetExporter.IntegrationTests.Md5VsSha256.Sha256(N: 1000)",
"module":"Elastic.CommonSchema.BenchmarkDotNetExporter.IntegrationTests",
"description":"Sha256",
"action":"Sha256",
"category":"Elastic.CommonSchema.BenchmarkDotNetExporter.IntegrationTests.Md5VsSha256-20200108-232208",
"type":"Md5VsSha256",
"parameters":"N=1000",
"repetitions":{
"measured":4,
"warmup":4
}
}
}
}
----
Loading

0 comments on commit 8c0e2e2

Please sign in to comment.