diff --git a/devdocs/todo.txt b/devdocs/todo.txt
index f90fcd7d..40b2fa76 100644
--- a/devdocs/todo.txt
+++ b/devdocs/todo.txt
@@ -3,6 +3,12 @@
{"login": "OpsAdminLimited","password": "OpsAdminLimited"}
+
+todo: it would be very handy to say the least to be able to run raven locally in linux for testing here
+ maybe virtual box, but I sure don't want to fuck up things, maybe need another computer, some cheap shitbox can test on?
+ is it slowing down development is really the only question I guess
+
+
todo: enable response compression
https://www.infoworld.com/article/3256012/how-to-use-response-compression-in-aspnet-core.html
diff --git a/docs/8.0/ayanova/docs/form-ops-metrics.md b/docs/8.0/ayanova/docs/form-ops-metrics.md
index d03bf583..3806a046 100644
--- a/docs/8.0/ayanova/docs/form-ops-metrics.md
+++ b/docs/8.0/ayanova/docs/form-ops-metrics.md
@@ -1,3 +1,17 @@
# OPS-METRICS Placeholder
-This is a placeholder page for sections that are not written yet
+ make a quick note in help document how to use chart as it's not all obvious
+ i.e. can hover, can hide line by clicking on legend etc
+ //NOTE: CPU percentage is *our* process cpu percentage over timeframe of last captured avg
+ //So it does *not* show the entire server cpu load, only for RAVEN.
+ //Overall, server stats need to be captured / viewed independently (digital ocean control panel for example or windows task manager)
+
+ What each stat means and how it's to be interpreted
+
+ Frequency of stat gathering
+ Auto deleted after 365 days
+
+ Used to provide trend monitoring over time so can know if need to upgrade the server it's hosted on or to anticipate running out of disk space, overwhelmed cpu pegging at 100% etc etc
+
+ Basic shit
+
diff --git a/docs/8.0/ayanova/docs/form-ops-profile.md b/docs/8.0/ayanova/docs/form-ops-profile.md
new file mode 100644
index 00000000..6c087547
--- /dev/null
+++ b/docs/8.0/ayanova/docs/form-ops-profile.md
@@ -0,0 +1,8 @@
+# OPS-PROFILE Placeholder
+
+primarily for tech support diagnosis in case of slowness
+only keeps last half hour of stats
+how to use: trigger slow operation, then go to this page right away and walk through looking for slow ness
+take screenshot to provide tech support or give tech support a ops limited login so they can view it themselves
+
+
diff --git a/docs/8.0/ayanova/mkdocs.yml b/docs/8.0/ayanova/mkdocs.yml
index 53867fa5..a590b8b0 100644
--- a/docs/8.0/ayanova/mkdocs.yml
+++ b/docs/8.0/ayanova/mkdocs.yml
@@ -106,6 +106,7 @@ nav:
- 'Job queue': 'form-ops-jobs.md'
- 'Server log': 'form-ops-log.md'
- 'Server metrics': 'form-ops-metrics.md'
+ - 'Profile': 'form-ops-profile.md'
- 'Notification settings': 'form-ops-notification-settings.md'
- 'Backup': 'ops-form-backup.md'
- Technical:
diff --git a/server/AyaNova/AyaNova.csproj b/server/AyaNova/AyaNova.csproj
index bdd8e16b..a97b27b8 100644
--- a/server/AyaNova/AyaNova.csproj
+++ b/server/AyaNova/AyaNova.csproj
@@ -24,11 +24,12 @@
-
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
+
diff --git a/server/AyaNova/Startup.cs b/server/AyaNova/Startup.cs
index e01f4a7b..73ab429e 100644
--- a/server/AyaNova/Startup.cs
+++ b/server/AyaNova/Startup.cs
@@ -49,22 +49,25 @@ namespace AyaNova
{
_newLog.LogDebug("Initializing services...");
- // _newLog.LogDebug("Profiler");
- // //https://dotnetthoughts.net/using-miniprofiler-in-aspnetcore-webapi/
- // services.AddMemoryCache();
- // services.AddMiniProfiler(options =>
- // {
- // options.RouteBasePath = "/profiler";
- // //in testing only ignorepaths was reliable and worked and docs say it prevents any profiling at all
- // options.IgnorePath("/auth").IgnorePath("/user").IgnorePath("/docs");
- // options.ResultsAuthorize = request =>
- // {
- // if (request.HttpContext.Items["AY_PROFILER_ALLOWED"] != null)
- // return true;
- // return false;
- // };
- // //options.ShouldProfile = request => false;
- // }).AddEntityFramework();
+ _newLog.LogDebug("Health");
+ services.AddHealthChecks().AddDbContextCheck();;
+
+ _newLog.LogDebug("Profiler");
+ //https://dotnetthoughts.net/using-miniprofiler-in-aspnetcore-webapi/
+ services.AddMemoryCache();
+ services.AddMiniProfiler(options =>
+ {
+ options.RouteBasePath = "/profiler";
+ //in testing only ignorepaths was reliable and worked and docs say it prevents any profiling at all
+ options.IgnorePath("/auth").IgnorePath("/license").IgnorePath("/user").IgnorePath("/docs");
+ options.ResultsAuthorize = request =>
+ {
+ if (request.HttpContext.Items["AY_PROFILER_ALLOWED"] != null)
+ return true;
+ return false;
+ };
+
+ }).AddEntityFramework();
//Server state service for shutting people out of api
@@ -474,13 +477,14 @@ namespace AyaNova
_newLog.LogDebug("Profiler");
- // app.UseMiniProfiler();
+ app.UseMiniProfiler();
_newLog.LogDebug("Endpoints pipeline");
app.UseEndpoints(endpoints =>
{
+ endpoints.MapHealthChecks("/health");
endpoints.MapControllers();
});