Conversation
…analytics updates pipeline
… refactor the admin actions dependencies as injected
…elsewhere in project" This reverts commit caff5ef.
… method, add new metric RequestsTotalPerIssuer
…t middleware level instead
| _logger = logger; | ||
| } | ||
|
|
||
| public async Task Execute(string? _) |
There was a problem hiding this comment.
onko tällä anomuumilla string? parametrilla jokin funktio tässä?
There was a problem hiding this comment.
Se toteuttaa tuon määrityksen IAdminAppAction vastaavasti kuin muissa "Action"-toteutuksissa, muualla sitä käytetään inputin parsimiseen raa-asta json-tekstistä. Voisihan siihen kyllä laittaa overriden että voisi kutsua myös ilman parametriä.
There was a problem hiding this comment.
Eikun eipä se yliajaminen tässä taida onnistuakaan ilman että lähtee muuttamaan rakannetta.
| var rawQuery = @" | ||
| SELECT COUNT(*) AS Amount, regexp_split_to_table(""Audiences"", ',') AS Audience | ||
| FROM ""ExternalIdentities"" | ||
| GROUP BY Audience; | ||
| "; | ||
| var personsCountByAudiences = _dataContext.PersonsByAudiencesResults.FromSqlRaw(rawQuery).ToList(); |
There was a problem hiding this comment.
Ilmeisesti raakaquery käytössä, koska LINQ ei tue regexiä?
Kysyin huvikseen kaikkitietävältä AI:lta mikä tälle ois vastine, en tiedä toimisiko ja onko edes yhtään selkeämpi:
var personsCountByAudiences = _dataContext.ExternalIdentities .SelectMany(e => e.Audiences.Split(','), (identity, audience) => new { Identity = identity, Audience = audience }) .GroupBy(x => x.Audience) .Select(g => new PersonsByAudiencesResult { Amount = g.Count(), Audience = g.Key }) .ToList();
There was a problem hiding this comment.
Hienolta näyttää löydys, täytyy kokeilla! Itellä oli hankaluuksia saada linqillä haluttuun muotoon ja tulokseen, muuten kuin päivittämällä ef core v6 -> v7 (ja siitä tulisi sitten muita ongelmia). Tässä "Audiences"-kolumnissa oli alkuperäinen tarkoitus tallentaa se tyypiksi text[], mutta ei oikein näyttänyt istuvan ef:n maisemaan. Luulen että samasta syystä projun muutkin teksti-listat on tallennettu kantaan comma-separated-tekstitietueena eikä ihan vaan listana. Työkalut muokkaa valintoja.
There was a problem hiding this comment.
Ei toimi tuollaisenaan esimerkki koska tuo on tosiaan entity frameworkin käpistelyssä listatyyppi ja sillä ei ole stringin split-metodia. Täytyy vielä tsekkailla josko tuon saisi kuitenkin text[]-tyypiksi oikeastikin, ilman että tarvitsee päivittää efcore versiota, tuli sen kanssa vain hieman jo käytettyä niitä kuuluisia pitkiä tunteja.
|
|
||
| namespace VirtualFinland.UserAPI.Middleware; | ||
|
|
||
| public class AnalyticsMiddleware |
There was a problem hiding this comment.
Oiskohan tässä kenties joku selventävä kommentti, että tämä middleware hoitaa kaksi eri asiaa:
- tracen passaaminen eteenpäin
- analytiikan kerääminen
Nuo ei ainakaan omassa päässä käänny siten, että liittyisivät suoraan toisiinsa (toinen enemmän audit trail/log hommia[?]), mutta sikäli ihan ok hoitaa samassa paikassa (olikin tuosta näköjään poisteltu joku RequestTracinMiddleware).
There was a problem hiding this comment.
Joo totta ne on omia vastuita ja hyvin voisi elellä omissa kalikoissaankin.
LauriGofore
left a comment
There was a problem hiding this comment.
👏 nähty myös dashboard käppyröissä demoilun yhteydessä, hyvin kerääpi dadaa!
Adds some metrics for the use of monitoring dashboard