Skip to content

Commit

Permalink
Entire Application:
Browse files Browse the repository at this point in the history
- Upgraded app to .NET Core 3.0
- Added controller version parsing to the Targets
- Added proxy config script information to the web.config for the full framework

Detected WEB Entities Report:
- WEB EUM performance report on 4.5.13 was missing performance data due to missing JSON parameter on the inbound API payload (fixed #81)

Configuration Report:
- Addes fixed to make WEB Synthetic jobs report on controllers >=4.5.13
- Added IsBuiltIn column to BT Entry Points and BT Entry Point 2.0 rule
- Fixed #84 with IsBuiltIn lookup column added

Detected DB Entities Report:
- Refactored version comparison for 4.4 and 4.5 controller version logic

Flame Graph Report:
- Added RabbitMQ colors

Entity Dashboard Screenshots:
- Added reports with screenshot taking using ChromeDriver on Windows and Mac

Events Report:
- Fixed #83 by removing SYSTEM_EVENT type from Events
  • Loading branch information
danielodievich committed Oct 21, 2019
1 parent 0ac6002 commit afd0a18
Show file tree
Hide file tree
Showing 58 changed files with 3,126 additions and 127 deletions.
5 changes: 5 additions & 0 deletions App.config
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@
Make sure to comment out all other proxy settings if you use this one
<proxy proxyaddress="http://youruser:yourpassword@your.proxy.url.com:12345" />
-->
<!--
This proxy is for the proxy autoconfigured by script
Make sure to comment out all other proxy settings if you use this one
<proxy scriptLocation="http://your.fqdn.com/yourscript.pac" />
-->
</defaultProxy>
</system.net>
</configuration>
47 changes: 42 additions & 5 deletions AppDynamics.Dexter.Core.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFrameworks>netcoreapp2.2;net472</TargetFrameworks>
<TargetFrameworks>netcoreapp3.0;net472</TargetFrameworks>
<RuntimeIdentifiers>win-x64;osx-x64;linux-x64</RuntimeIdentifiers>
<ApplicationIcon>SearchContract.ico</ApplicationIcon>
<SignAssembly>true</SignAssembly>
<SignAssembly>false</SignAssembly>
<AssemblyName>AppDynamics.Dexter</AssemblyName>
<RootNamespace>AppDynamics.Dexter</RootNamespace>
</PropertyGroup>
Expand Down Expand Up @@ -50,9 +50,13 @@
<PackageReference Include="CsvHelper" Version="7.1.1" />
<PackageReference Include="EPPlus" Version="4.5.3" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
<PackageReference Include="NLog" Version="4.6.6" />
<PackageReference Include="NLog.Config" Version="4.6.6" />
<PackageReference Include="NLog.Schema" Version="4.6.6" />
<PackageReference Include="NLog" Version="4.6.7" />
<PackageReference Include="NLog.Config" Version="4.6.7" />
<PackageReference Include="NLog.Schema" Version="4.6.7" />
<PackageReference Include="runtime.osx.10.10-x64.CoreCompat.System.Drawing" Version="5.8.64" />
<PackageReference Include="Selenium.Support" Version="3.141.0" />
<PackageReference Include="Selenium.WebDriver" Version="3.141.0" />
<PackageReference Include="System.Drawing.Common" Version="4.6.0" />
<PackageReference Include="System.Net.Http" Version="4.3.4" />
</ItemGroup>

Expand All @@ -61,6 +65,36 @@
</ItemGroup>

<ItemGroup>
<None Update="LinksToApplicationsDashboardsTemplate.html">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="ChromeDriver\76\linux64\chromedriver">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="ChromeDriver\76\mac64\chromedriver">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="ChromeDriver\76\win32\chromedriver.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="ChromeDriver\77\linux64\chromedriver">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="ChromeDriver\77\mac64\chromedriver">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="ChromeDriver\77\win32\chromedriver.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="ChromeDriver\78\linux64\chromedriver">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="ChromeDriver\78\mac64\chromedriver">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="ChromeDriver\78\win32\chromedriver.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="ConfigCompare\reference.controller\CFG\controllerversion.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
Expand Down Expand Up @@ -403,6 +437,9 @@
<None Update="EmptyConfig\reference.controller\EmptyWEB.0\ENT\webpages.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="LinksToApplicationDashboardsTemplate.html">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="global.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
Expand Down
Binary file added ChromeDriver/76/linux64/chromedriver
Binary file not shown.
Binary file added ChromeDriver/76/mac64/chromedriver
Binary file not shown.
Binary file added ChromeDriver/76/win32/chromedriver.exe
Binary file not shown.
Binary file added ChromeDriver/77/linux64/chromedriver
Binary file not shown.
Binary file added ChromeDriver/77/mac64/chromedriver
Binary file not shown.
Binary file added ChromeDriver/77/win32/chromedriver.exe
Binary file not shown.
Binary file added ChromeDriver/78/linux64/chromedriver
Binary file not shown.
Binary file added ChromeDriver/78/mac64/chromedriver
Binary file not shown.
Binary file added ChromeDriver/78/win32/chromedriver.exe
Binary file not shown.
12 changes: 10 additions & 2 deletions ControllerApi/ControllerApi.cs
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public ControllerApi(string controllerURL, string userName, string userPassword)
};

// If customer controller is still leveraging old TLS or SSL3 protocols, enable that
#if (NETCOREAPP2_2)
#if (NETCOREAPP3_0)
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
#else
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11;
Expand Down Expand Up @@ -889,6 +889,7 @@ public string GetWEBPagePerformance(long applicationID, long addID, long startTi
""addId"": {1},
""applicationId"": {0},
""timeRangeString"": ""Custom_Time_Range|BETWEEN_TIMES|{3}|{2}|{4}"",
""maxDataPointsForMetricTrends"": 1440,
""fetchSyntheticData"": false
}}";

Expand Down Expand Up @@ -970,7 +971,7 @@ public string GetEUMConfigSettings(long applicationID)
return this.apiGET(String.Format("controller/restui/browserRUMConfig/getSettingsConfig/{0}", applicationID), "application/json", true);
}

public string GetWEBSyntheticJobs(long applicationID)
public string GetWEBSyntheticJobs_Before_4_5_13(long applicationID)
{
string requestJSONTemplate =
@"{{
Expand All @@ -984,6 +985,13 @@ public string GetWEBSyntheticJobs(long applicationID)
return this.apiPOST("controller/restui/synthetic/schedule/getJobList", "application/json", requestBody, "application/json", true);
}

public string GetWEBSyntheticJobs(long applicationID)
{
string requestBody = String.Empty;

return this.apiPOST(String.Format("controller/restui/synthetic/schedule/getJobList/{0}", applicationID), "application/json", requestBody, "application/json", true);
}

#endregion

#region MOBILE metadata
Expand Down
54 changes: 54 additions & 0 deletions DataObjects/JobConfiguration/JobBackendType.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
namespace AppDynamics.Dexter
{
/// <summary>
/// codebase\controller\controller-api\agent\src\main\java\com\singularity\ee\controller\api\dto\transactionmonitor\TransactionExitPointType.java
/// </summary>
public class JobBackendType
{
public bool All { get; set; }

// Common Across Runtimes
public bool SOCKET { get; set; }
public bool HTTP { get; set; }
public bool CUSTOM { get; set; }
public bool CUSTOM_ASYNC { get; set; }
public bool FILE_SERVER { get; set; }
public bool MAIL_SERVER { get; set; }
public bool WEB_SERVICE { get; set; }
public bool ERP { get; set; }
public bool CACHE { get; set; }
public bool WEBSPHERE_MQ { get; set; }
public bool MAINFRAME { get; set; }
public bool TIBCO_ASYNC { get; set; }
public bool TIBCO { get; set; }
public bool ESB { get; set; }
public bool SAP { get; set; }
public bool AVRO { get; set; }
public bool THRIFT { get; set; }
public bool CASSANDRA { get; set; }
public bool MQ { get; set; }
public bool JMS { get; set; }
public bool WEBSOCKET { get; set; }

// Java Only
public bool JDBC { get; set; }
public bool RMI { get; set; }
public bool LDAP { get; set; }
public bool CORBA { get; set; }
public bool RABBITMQ { get; set; }

// .NET Only
public bool ADODOTNET { get; set; }
public bool DOTNETDirectoryServices { get; set; }
public bool DOTNETRemoting { get; set; }
public bool DOTNETMessaging { get; set; }
public bool WCF { get; set; }
public bool MSMQ { get; set; }

// PHP specific
public bool DB { get; set; }

// network stats
public bool NETWORK { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
namespace AppDynamics.Dexter
{
public class JobEntityDashboardSelectionCriteria
{
public string[] Tiers { get; set; }
public JobTierType TierType { get; set; }
public string[] Nodes { get; set; }
public JobTierType NodeType { get; set; }
public string[] BusinessTransactions { get; set; }
public JobBusinessTransactionType BusinessTransactionType { get; set; }
public string[] Backends { get; set; }
public JobBackendType BackendType { get; set; }
}
}
2 changes: 2 additions & 0 deletions DataObjects/JobConfiguration/JobInput.cs
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,7 @@ public class JobInput
public bool UsersGroupsRolesPermissions { get; set; }
public bool Dashboards { get; set; }
public bool Licenses { get; set; }
public bool EntityDashboards { get; set; }
public JobEntityDashboardSelectionCriteria EntityDashboardSelectionCriteria { get; set; }
}
}
1 change: 1 addition & 0 deletions DataObjects/JobConfiguration/JobOutput.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ public class JobOutput
public bool EntityMetrics { get; set; }
public bool EntityMetricGraphs { get; set; }
public bool EntityDetails { get; set; }
public bool EntityDashboards { get; set; }
public bool Snapshots { get; set; }
public bool FlameGraphs { get; set; }
public bool Configuration { get; set; }
Expand Down
5 changes: 4 additions & 1 deletion DataObjects/JobConfiguration/JobStatus.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ public enum JobStatus

ExtractAPMMetrics = 30,
ExtractAPMFlowmaps = 31,
ExtractAPMSnapshots = 32,
ExtractAPMEntityDashboardScreenshots = 32,
ExtractAPMSnapshots = 33,

// Index steps
IndexControllerVersionAndApplications = 50,
Expand Down Expand Up @@ -86,6 +87,8 @@ public enum JobStatus

ReportAPMEntityDetails = 133,

ReportAPMEntityDashboardScreenshots = 140,

// The rest
Done = 500,

Expand Down
27 changes: 26 additions & 1 deletion DataObjects/JobConfiguration/JobTarget.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,34 @@
using System;
using System.Net;

namespace AppDynamics.Dexter
{
public class JobTarget
{
public string Controller { get; set; }
private string _controller = string.Empty;
private Uri _controllerURI = null;

public string Controller
{
get
{
return this._controller;
}
set
{
if (value.Length > 0)
{
try
{
Uri controllerUri = new Uri(value);
this._controllerURI = controllerUri;
this._controller = controllerUri.GetComponents(UriComponents.SchemeAndServer, UriFormat.SafeUnescaped);
}
catch { }
}
}
}

public string UserName { get; set; }
public string UserPassword { get; set; }
public string Application { get; set; }
Expand All @@ -13,6 +37,7 @@ public class JobTarget
public long ParentApplicationID { get; set; }
public bool NameRegex { get; set; }
public string Type { get; set; }
public string ControllerVersion { get; set; }

public JobTarget Clone()
{
Expand Down
Loading

0 comments on commit afd0a18

Please sign in to comment.