Skip to content

Commit 03f047b

Browse files
committed
Fixed an issue where elastic mappsing weren't being picked up correctly.
1 parent 59a0565 commit 03f047b

File tree

12 files changed

+50
-28
lines changed

12 files changed

+50
-28
lines changed

src/Exceptionless.Api/Exceptionless.Api.csproj

+4-4
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@
7474
<HintPath>..\..\packages\Foundatio.Parsers.LuceneQueries.2.0.135-pre\lib\net46\Foundatio.Parsers.LuceneQueries.dll</HintPath>
7575
<Private>True</Private>
7676
</Reference>
77-
<Reference Include="Foundatio.Repositories, Version=5.0.305.0, Culture=neutral, processorArchitecture=MSIL">
78-
<HintPath>..\..\packages\Foundatio.Repositories.5.0.305-pre\lib\net46\Foundatio.Repositories.dll</HintPath>
77+
<Reference Include="Foundatio.Repositories, Version=5.0.306.0, Culture=neutral, processorArchitecture=MSIL">
78+
<HintPath>..\..\packages\Foundatio.Repositories.5.0.306-pre\lib\net46\Foundatio.Repositories.dll</HintPath>
7979
<Private>True</Private>
8080
</Reference>
81-
<Reference Include="Foundatio.Repositories.Elasticsearch, Version=5.0.305.0, Culture=neutral, processorArchitecture=MSIL">
82-
<HintPath>..\..\packages\Foundatio.Repositories.Elasticsearch.5.0.305-pre\lib\net46\Foundatio.Repositories.Elasticsearch.dll</HintPath>
81+
<Reference Include="Foundatio.Repositories.Elasticsearch, Version=5.0.306.0, Culture=neutral, processorArchitecture=MSIL">
82+
<HintPath>..\..\packages\Foundatio.Repositories.Elasticsearch.5.0.306-pre\lib\net46\Foundatio.Repositories.Elasticsearch.dll</HintPath>
8383
<Private>True</Private>
8484
</Reference>
8585
<Reference Include="McSherry.SemanticVersioning, Version=1.2.0.0, Culture=neutral, processorArchitecture=MSIL">

src/Exceptionless.Api/packages.config

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
<package id="Foundatio" version="4.2.1183" targetFramework="net461" />
88
<package id="Foundatio.Parsers.ElasticQueries" version="2.0.135-pre" targetFramework="net461" />
99
<package id="Foundatio.Parsers.LuceneQueries" version="2.0.135-pre" targetFramework="net461" />
10-
<package id="Foundatio.Repositories" version="5.0.305-pre" targetFramework="net461" />
11-
<package id="Foundatio.Repositories.Elasticsearch" version="5.0.305-pre" targetFramework="net461" />
10+
<package id="Foundatio.Repositories" version="5.0.306-pre" targetFramework="net461" />
11+
<package id="Foundatio.Repositories.Elasticsearch" version="5.0.306-pre" targetFramework="net461" />
1212
<package id="McSherry.SemanticVersioning" version="1.2.0" targetFramework="net461" />
1313
<package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net461" />
1414
<package id="Microsoft.AspNet.SignalR.Core" version="2.2.1" targetFramework="net461" />

src/Exceptionless.Core/Exceptionless.Core.csproj

+4-4
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,12 @@
6969
<HintPath>..\..\packages\Foundatio.Parsers.LuceneQueries.2.0.135-pre\lib\net46\Foundatio.Parsers.LuceneQueries.dll</HintPath>
7070
<Private>True</Private>
7171
</Reference>
72-
<Reference Include="Foundatio.Repositories, Version=5.0.305.0, Culture=neutral, processorArchitecture=MSIL">
73-
<HintPath>..\..\packages\Foundatio.Repositories.5.0.305-pre\lib\net46\Foundatio.Repositories.dll</HintPath>
72+
<Reference Include="Foundatio.Repositories, Version=5.0.306.0, Culture=neutral, processorArchitecture=MSIL">
73+
<HintPath>..\..\packages\Foundatio.Repositories.5.0.306-pre\lib\net46\Foundatio.Repositories.dll</HintPath>
7474
<Private>True</Private>
7575
</Reference>
76-
<Reference Include="Foundatio.Repositories.Elasticsearch, Version=5.0.305.0, Culture=neutral, processorArchitecture=MSIL">
77-
<HintPath>..\..\packages\Foundatio.Repositories.Elasticsearch.5.0.305-pre\lib\net46\Foundatio.Repositories.Elasticsearch.dll</HintPath>
76+
<Reference Include="Foundatio.Repositories.Elasticsearch, Version=5.0.306.0, Culture=neutral, processorArchitecture=MSIL">
77+
<HintPath>..\..\packages\Foundatio.Repositories.Elasticsearch.5.0.306-pre\lib\net46\Foundatio.Repositories.Elasticsearch.dll</HintPath>
7878
<Private>True</Private>
7979
</Reference>
8080
<Reference Include="MaxMind.Db, Version=2.0.0.0, Culture=neutral, PublicKeyToken=66afa4cc5ae853ac, processorArchitecture=MSIL">

src/Exceptionless.Core/Repositories/Configuration/Indexes/EventIndex/EventIndex.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ public EventIndex(IElasticConfiguration configuration) : base(configuration, Set
3535

3636
public EventIndexType Event { get; }
3737

38-
public override CreateIndexDescriptor ConfigureDescriptor(CreateIndexDescriptor idx) {
39-
return base.ConfigureDescriptor(idx.Settings(s => s
38+
public override CreateIndexDescriptor ConfigureIndex(CreateIndexDescriptor idx) {
39+
return base.ConfigureIndex(idx.Settings(s => s
4040
.Analysis(BuildAnalysis)
4141
.NumberOfShards(Settings.Current.ElasticSearchNumberOfShards)
4242
.NumberOfReplicas(Settings.Current.ElasticSearchNumberOfReplicas)));

src/Exceptionless.Core/Repositories/Configuration/Indexes/OrganizationIndex/OrganizationIndex.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ public OrganizationIndex(IElasticConfiguration configuration) : base(configurati
1414
AddType(WebHook = new WebHookIndexType(this));
1515
}
1616

17-
public override CreateIndexDescriptor ConfigureDescriptor(CreateIndexDescriptor idx) {
18-
return base.ConfigureDescriptor(idx.Settings(s => s
17+
public override CreateIndexDescriptor ConfigureIndex(CreateIndexDescriptor idx) {
18+
return base.ConfigureIndex(idx.Settings(s => s
1919
.Analysis(d => d.Analyzers(b => b.Custom(KEYWORD_LOWERCASE_ANALYZER, c => c.Filters("lowercase").Tokenizer("keyword"))))
2020
.NumberOfShards(Settings.Current.ElasticSearchNumberOfShards)
2121
.NumberOfReplicas(Settings.Current.ElasticSearchNumberOfReplicas)));

src/Exceptionless.Core/Repositories/Configuration/Indexes/StackIndex/StackIndex.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ public StackIndex(IElasticConfiguration configuration) : base(configuration, Set
1010

1111
public StackIndexType Stack { get; }
1212

13-
public override CreateIndexDescriptor ConfigureDescriptor(CreateIndexDescriptor idx) {
14-
return base.ConfigureDescriptor(idx.Settings(s => s
13+
public override CreateIndexDescriptor ConfigureIndex(CreateIndexDescriptor idx) {
14+
return base.ConfigureIndex(idx.Settings(s => s
1515
.NumberOfShards(Settings.Current.ElasticSearchNumberOfShards)
1616
.NumberOfReplicas(Settings.Current.ElasticSearchNumberOfReplicas)));
1717
}

src/Exceptionless.Core/Repositories/ProjectRepository.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public async Task IncrementNextSummaryEndOfDayTicksAsync(IReadOnlyCollection<Pro
6060
if (projects.Count == 0)
6161
return;
6262

63-
string script = $"ctx._source.next_summary_end_of_day_ticks += {TimeSpan.TicksPerDay};";
63+
string script = $"ctx._source.next_summary_end_of_day_ticks += {TimeSpan.TicksPerDay}L;";
6464
await PatchAsync(projects.Select(p => p.Id), script, false).AnyContext();
6565
await InvalidateCacheAsync(projects).AnyContext();
6666
}

src/Exceptionless.Core/Utility/EventStats.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ public async Task<NumbersStatsResult> GetNumbersStatsAsync(IEnumerable<FieldAggr
7171
}
7272

7373
public async Task<NumbersTermStatsResult> GetNumbersTermsStatsAsync(string term, IEnumerable<FieldAggregation> fields, DateTime utcStart, DateTime utcEnd, IExceptionlessSystemFilterQuery systemFilter, string userFilter = null, TimeSpan? displayTimeOffset = null, int max = 25) {
74-
var allowedTerms = new[] { "organization_id", "project_id", "stack_id", "tags", "version" };
74+
var allowedTerms = new[] { "organization_id", "project_id", "stack_id", "tags.keyword", "version.keyword" };
7575
if (!allowedTerms.Contains(term))
7676
throw new ArgumentException("Must be a valid term.", nameof(term));
7777

@@ -340,7 +340,7 @@ private async Task UpdateFilterStartDateRangesAsync(ElasticQuery filter, DateTim
340340
}
341341

342342
private string HoursAndMinutes(TimeSpan ts) {
343-
return (ts < TimeSpan.Zero ? "-" : "") + ts.ToString("hh\\:mm");
343+
return (ts < TimeSpan.Zero ? "-" : "+") + ts.ToString("hh\\:mm");
344344
}
345345

346346
private Tuple<string, TimeSpan> GetInterval(DateTime utcStart, DateTime utcEnd, int desiredDataPoints = 100) {

src/Exceptionless.Core/packages.config

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
<package id="Foundatio" version="4.2.1183" targetFramework="net461" />
88
<package id="Foundatio.Parsers.ElasticQueries" version="2.0.135-pre" targetFramework="net461" />
99
<package id="Foundatio.Parsers.LuceneQueries" version="2.0.135-pre" targetFramework="net461" />
10-
<package id="Foundatio.Repositories" version="5.0.305-pre" targetFramework="net461" />
11-
<package id="Foundatio.Repositories.Elasticsearch" version="5.0.305-pre" targetFramework="net461" />
10+
<package id="Foundatio.Repositories" version="5.0.306-pre" targetFramework="net461" />
11+
<package id="Foundatio.Repositories.Elasticsearch" version="5.0.306-pre" targetFramework="net461" />
1212
<package id="MaxMind.Db" version="2.1.2" targetFramework="net461" />
1313
<package id="MaxMind.GeoIP2" version="2.7.1" targetFramework="net461" />
1414
<package id="McSherry.SemanticVersioning" version="1.2.0" targetFramework="net461" />

tests/Exceptionless.Api.Tests/Exceptionless.Api.Tests.csproj

+4-4
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,12 @@
7878
<HintPath>..\..\packages\Foundatio.Parsers.LuceneQueries.2.0.135-pre\lib\net46\Foundatio.Parsers.LuceneQueries.dll</HintPath>
7979
<Private>True</Private>
8080
</Reference>
81-
<Reference Include="Foundatio.Repositories, Version=5.0.305.0, Culture=neutral, processorArchitecture=MSIL">
82-
<HintPath>..\..\packages\Foundatio.Repositories.5.0.305-pre\lib\net46\Foundatio.Repositories.dll</HintPath>
81+
<Reference Include="Foundatio.Repositories, Version=5.0.306.0, Culture=neutral, processorArchitecture=MSIL">
82+
<HintPath>..\..\packages\Foundatio.Repositories.5.0.306-pre\lib\net46\Foundatio.Repositories.dll</HintPath>
8383
<Private>True</Private>
8484
</Reference>
85-
<Reference Include="Foundatio.Repositories.Elasticsearch, Version=5.0.305.0, Culture=neutral, processorArchitecture=MSIL">
86-
<HintPath>..\..\packages\Foundatio.Repositories.Elasticsearch.5.0.305-pre\lib\net46\Foundatio.Repositories.Elasticsearch.dll</HintPath>
85+
<Reference Include="Foundatio.Repositories.Elasticsearch, Version=5.0.306.0, Culture=neutral, processorArchitecture=MSIL">
86+
<HintPath>..\..\packages\Foundatio.Repositories.Elasticsearch.5.0.306-pre\lib\net46\Foundatio.Repositories.Elasticsearch.dll</HintPath>
8787
<Private>True</Private>
8888
</Reference>
8989
<Reference Include="MaxMind.Db, Version=2.0.0.0, Culture=neutral, PublicKeyToken=66afa4cc5ae853ac, processorArchitecture=MSIL">

tests/Exceptionless.Api.Tests/Stats/StatsTests.cs

+23-1
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,29 @@ public async Task CanGetEventTermStatsByTagAsync() {
156156
Assert.True(fields.IsValid);
157157

158158
var sf = new ExceptionlessSystemFilterQuery(ProjectData.GenerateSampleProject(), OrganizationData.GenerateSampleOrganization());
159-
var result = await _stats.GetNumbersTermsStatsAsync("tags", fields.Aggregations, startDate, SystemClock.UtcNow, sf, "fixed:false");
159+
var result = await _stats.GetNumbersTermsStatsAsync("tags.keyword", fields.Aggregations, startDate, SystemClock.UtcNow, sf, "fixed:false");
160+
Assert.Equal(eventCount, result.Total);
161+
// each event can be in multiple tag buckets since an event can have up to 3 sample tags
162+
Assert.InRange(result.Terms.Sum(t => t.Total), eventCount, eventCount * 3);
163+
Assert.InRange(result.Terms.Sum(t => t.Numbers[0]), 1, 25 * TestConstants.EventTags.Count); // new
164+
Assert.InRange(result.Terms.Count, 1, TestConstants.EventTags.Count);
165+
foreach (var term in result.Terms)
166+
Assert.InRange(term.Numbers[0], 1, 25); // new
167+
}
168+
169+
[Fact]
170+
public async Task CanGetEventTermStatsByVersionAsync() {
171+
// capture start date before generating data to make sure that our time range for stats includes all items
172+
var startDate = SystemClock.UtcNow.SubtractDays(60);
173+
const int eventCount = 100;
174+
await CreateDataAsync(eventCount, false);
175+
176+
Log.MinimumLevel = LogLevel.Trace;
177+
var fields = FieldAggregationProcessor.Process("term:is_first_occurrence:-F", false);
178+
Assert.True(fields.IsValid);
179+
180+
var sf = new ExceptionlessSystemFilterQuery(ProjectData.GenerateSampleProject(), OrganizationData.GenerateSampleOrganization());
181+
var result = await _stats.GetNumbersTermsStatsAsync("version.keyword", fields.Aggregations, startDate, SystemClock.UtcNow, sf, "fixed:false");
160182
Assert.Equal(eventCount, result.Total);
161183
// each event can be in multiple tag buckets since an event can have up to 3 sample tags
162184
Assert.InRange(result.Terms.Sum(t => t.Total), eventCount, eventCount * 3);

tests/Exceptionless.Api.Tests/packages.config

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010
<package id="Foundatio.Logging.Xunit" version="4.2.1183" targetFramework="net461" />
1111
<package id="Foundatio.Parsers.ElasticQueries" version="2.0.135-pre" targetFramework="net461" />
1212
<package id="Foundatio.Parsers.LuceneQueries" version="2.0.135-pre" targetFramework="net461" />
13-
<package id="Foundatio.Repositories" version="5.0.305-pre" targetFramework="net461" />
14-
<package id="Foundatio.Repositories.Elasticsearch" version="5.0.305-pre" targetFramework="net461" />
13+
<package id="Foundatio.Repositories" version="5.0.306-pre" targetFramework="net461" />
14+
<package id="Foundatio.Repositories.Elasticsearch" version="5.0.306-pre" targetFramework="net461" />
1515
<package id="MaxMind.Db" version="2.1.2" targetFramework="net461" />
1616
<package id="MaxMind.GeoIP2" version="2.7.1" targetFramework="net461" />
1717
<package id="McSherry.SemanticVersioning" version="1.2.0" targetFramework="net461" />

0 commit comments

Comments
 (0)