Skip to content

Commit

Permalink
Compile with new OpenTelemitery and no AI
Browse files Browse the repository at this point in the history
  • Loading branch information
MrHinsh committed Sep 3, 2024
1 parent 02994fe commit 2673d05
Show file tree
Hide file tree
Showing 50 changed files with 840 additions and 905 deletions.
20 changes: 10 additions & 10 deletions docs/Reference/Generated/MigrationTools.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
using MigrationTools.EndpointEnrichers;
using Newtonsoft.Json;
using Newtonsoft.Json.Serialization;
using static Microsoft.ApplicationInsights.MetricDimensionNames.TelemetryContext;

namespace MigrationTools.Endpoints
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@

<ItemGroup>
<PackageReference Include="Azure.Monitor.OpenTelemetry.Exporter" Version="1.3.0" />
<PackageReference Include="Microsoft.Extensions.Logging.ApplicationInsights" Version="2.22.0" />
<PackageReference Include="Microsoft.TeamFoundationServer.Client" Version="19.225.1" />
<PackageReference Include="Microsoft.AspNet.WebApi.Client" Version="6.0.0" />
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.9.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.22.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
<PackageReference Include="MSTest.TestAdapter" Version="3.5.2" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

<ItemGroup>
<PackageReference Include="Azure.Monitor.OpenTelemetry.Exporter" Version="1.3.0" />
<PackageReference Include="Microsoft.Extensions.Logging.ApplicationInsights" Version="2.22.0" />
<PackageReference Include="OpenTelemetry.Exporter.Console" Version="1.9.0" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" Version="1.9.0" />
<PackageReference Include="OpenTelemetry.Instrumentation.Runtime" Version="1.9.0" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.ApplicationInsights.WorkerService" Version="2.22.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.0" />
<PackageReference Include="Microsoft.TeamFoundationServer.ExtendedClient" Version="19.225.1" />
Expand Down

Large diffs are not rendered by default.

128 changes: 66 additions & 62 deletions src/MigrationTools.Clients.TfsObjectModel/Clients/TfsWorkItemQuery.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
using System.Diagnostics;
using System.Linq;
using System.Windows.Forms;
using Microsoft.ApplicationInsights.DataContracts;
using Microsoft.TeamFoundation.WorkItemTracking.Client;
using MigrationTools.DataContracts;
using MigrationTools.Services;
using Serilog;

namespace MigrationTools._EngineV1.Clients
Expand All @@ -31,81 +31,85 @@ public override List<WorkItemData> GetWorkItems()

private IList<WorkItem> GetInternalWorkItems()
{
Log.Debug("WorkItemQuery: ===========GetWorkItems=============");
var wiClient = (TfsWorkItemMigrationClient)MigrationClient.WorkItems;
Telemetry.TrackEvent("WorkItemQuery.Execute", Parameters, null);
Log.Debug("WorkItemQuery: TeamProjectCollection: {QueryTarget}", wiClient.Store.TeamProjectCollection.Uri.ToString());
Log.Debug("WorkItemQuery: Query: {QueryText}", Query);
Log.Debug("WorkItemQuery: Parameters: {@QueryParams}", Parameters);
foreach (var item in Parameters)
using (var activity = ActivitySourceProvider.ActivitySource.StartActivity("TfsWorkItemQuery:GetInternalWorkItems", ActivityKind.Internal))
{
Log.Debug("WorkItemQuery: {0}: {1}", item.Key, item.Value);
activity?.SetTagsFromOptions(MigrationClient.Options);
activity?.SetTag("url.full", MigrationClient.Options.Collection);
activity?.SetTag("server.address", MigrationClient.Options.Collection);
activity?.SetTag("http.request.method", "GET");
activity?.SetTag("migrationtools.client", "TfsObjectModel");
activity?.SetEndTime(activity.StartTimeUtc.AddSeconds(10));
foreach (var item in Parameters)
{
activity?.SetTag($"wiql.parameters.{item.Key}", item.Value);
}

Log.Debug("WorkItemQuery: ===========GetWorkItems=============");
var wiClient = (TfsWorkItemMigrationClient)MigrationClient.WorkItems;
Log.Debug("WorkItemQuery: TeamProjectCollection: {QueryTarget}", wiClient.Store.TeamProjectCollection.Uri.ToString());
Log.Debug("WorkItemQuery: Query: {QueryText}", Query);
Log.Debug("WorkItemQuery: Parameters: {@QueryParams}", Parameters);
foreach (var item in Parameters)
{
Log.Debug("WorkItemQuery: {0}: {1}", item.Key, item.Value);
}
return GetWorkItemsFromQuery(wiClient);
}
return GetWorkItemsFromQuery(wiClient);
}

private IList<WorkItem> GetWorkItemsFromQuery(TfsWorkItemMigrationClient wiClient)
{
var startTime = DateTime.UtcNow;
var timer = Stopwatch.StartNew();
var results = new List<WorkItem>();
try
using (var activity = ActivitySourceProvider.ActivitySource.StartActivity("GetWorkItemsFromQuery", ActivityKind.Client))
{
Log.Debug("Query sent");
var workItemCollection = wiClient.Store.Query(Query);
if (workItemCollection.Count > 0)
activity?.SetTagsFromOptions(MigrationClient.Options);
activity?.SetTag("url.full", MigrationClient.Options.Collection);
activity?.SetTag("server.address", MigrationClient.Options.Collection);
activity?.SetTag("http.request.method", "GET");
activity?.SetTag("migrationtools.client", "TfsObjectModel");
activity?.SetEndTime(activity.StartTimeUtc.AddSeconds(10));
var results = new List<WorkItem>();
try
{
Log.Information("{0} Work items received, verifying", workItemCollection.Count);
foreach (WorkItem item in workItemCollection)
Log.Debug("Query sent");
var workItemCollection = wiClient.Store.Query(Query);
if (workItemCollection.Count > 0)
{
int id= 0;
try
Log.Information("{0} Work items received, verifying", workItemCollection.Count);
foreach (WorkItem item in workItemCollection)
{
id = item.Id;
if (!string.IsNullOrEmpty(item.Title)) // Force to read WI
results.Add(item);
}
catch (DeniedOrNotExistException ex)
{

Log.Warning(ex, "The Work Item {id} cant be accessed for some reason and returned a DeniedOrNotExistException! The specific error will be listed below.", id);
Telemetry.TrackException(ex,
new Dictionary<string, string>
{
{ "CollectionUrl", wiClient.Store.TeamProjectCollection.Uri.ToString() }
},
new Dictionary<string, double>
{
{ "QueryTime",timer.ElapsedMilliseconds }
});
int id = 0;
try
{
id = item.Id;
if (!string.IsNullOrEmpty(item.Title)) // Force to read WI
results.Add(item);
}
catch (DeniedOrNotExistException ex)
{

Log.Warning(ex, "The Work Item {id} cant be accessed for some reason and returned a DeniedOrNotExistException! The specific error will be listed below.", id);
Telemetry.TrackException(ex, activity.Tags);
}
}
}
activity?.SetTag("http.response.status_code", "200");
}
timer.Stop();
Telemetry.TrackDependency(new DependencyTelemetry("TfsObjectModel", MigrationClient.Options.Collection.ToString(), "GetWorkItemsFromQuery", null, startTime, timer.Elapsed, "200", true));
}
catch (ValidationException ex)
{
timer.Stop();
Telemetry.TrackDependency(new DependencyTelemetry("TfsObjectModel", MigrationClient.Options.Collection.ToString(), "GetWorkItemsFromQuery", null, startTime, timer.Elapsed, "500", false));
Log.Error(ex, " Error running query");
Environment.Exit(-1);
}
catch (Exception ex)
{
timer.Stop();
Telemetry.TrackDependency(new DependencyTelemetry("TfsObjectModel", MigrationClient.Options.Collection.ToString(), "GetWorkItemsFromQuery", null, startTime, timer.Elapsed, "500", false));
Telemetry.TrackException(ex,
new Dictionary<string, string> {
{ "CollectionUrl", wiClient.Store.TeamProjectCollection.Uri.ToString() }
},
new Dictionary<string, double> {
{ "QueryTime",timer.ElapsedMilliseconds }
});
Log.Error(ex, " Error running query");
throw;
catch (ValidationException ex)
{
activity?.SetTag("http.response.status_code", "500");
Log.Error(ex, " Error running query");
Environment.Exit(-1);
}
catch (Exception ex)
{

activity?.SetTag("http.response.status_code", "500");
Telemetry.TrackException(ex, activity.Tags);
Log.Error(ex, " Error running query");
throw;
}
return results;
}
return results;
}
}
}
Loading

0 comments on commit 2673d05

Please sign in to comment.