DIASTEMA-UPRC / monitoring

This is the repository regarding the Diastema Monitoring Engine
Apache License 2.0
0 stars 0 forks source link

Visualization Service #6

Closed karamolegkos closed 1 year ago

karamolegkos commented 1 year ago

This issue reffers to the Visualization Service, that is generating images for the Web Application.

This issue is linked with: #3 Bottlenecked by: #4 - We need to know the way that this service can extract information by Prometheus.

konvoulgaris commented 1 year ago

Highly linked with "Visualization Interface". Need to coordinate tasks @karamolegkos @adreaskar

adreaskar commented 1 year ago

Νομίζω πρέπει να αποφασίσουμε στο πως θα γίνεται η αποθήκευση απο το Visualization Service και ύστερα η λήψη των εικόνων απο το Visualization Interface (DIASTEMA-UPRC/web-application#31)

I see two scenarios:

Food for thought

adreaskar commented 1 year ago

Update:

Κάνω μια πρόταση για το πως θα μπορούσαμε να δομήσουμε τα 3 services ώστε να παίζουν μεταξύ τους:

1) Όταν μια ανάλυση τελειώνει ο Orchestrator πηγαίνει: MongoDB -> UIDB database -> Pipelines collection, να βρίσκει την εγγραφή αυτής της ανάλυσης και να προσθέτει στο πεδίο metadata την εγγραφή: "status":"completed" 2) Το Visualization Interface σκανάρει όλο το Pipelines collection και εμφανίζει τις αναλύσεις που έχουν "status":"completed" Για κάθε ανάλυση παρέχει κάποια μεταδεδομένα καθώς και δύο κουμπιά:

@konvoulgaris @karamolegkos ρίξτε του μια ματιά στον χρόνο σας και το συζητάμε.

karamolegkos commented 1 year ago

Ξαναχρησιμοποιούμε πλέων το παρακάτω node με τα εξής χαρακτηριστικά:

{
  "title" : "visualization",
  "label" : <a-random-title>
}

Image

Παρακάτω ένα Flow ενός παραδειγματικού Use Case:

  1. To Web Application καλεί τον Orchestrator για μία εφαρμογή ανάλυσης.
    • Το Web Application ελέγχει αν όλα τα visualization titles είναι διαφορετικά για το analysis.
  2. Όταν ο Orchestrator εντοπίζει ένα visualization node (ending node) τότε καλεί το Visualization Service.
  3. To Visualization Service παίρνει ως είσοδο από τον Orchestrator τα παρακάτω:
    {
    "analysis-id" : <analysis-id>,
    "job-id" : <job-id>,
    "last-job-id" : <last-job-id>,    # The last job id in orfer to get the metadata from MongoDB made by the other services
    "last-job-title" : <last-job-title>,
    "minio-output" : <minio-output>,
    "minio-input" : <minio-input>
    }

    Αν χρειάζεται παραπάνω πληροφορία ο @karamolegkos θα επικοινωνήσει με τον @konvoulgaris.

  4. To Visualization Service δίνει ως έξοδο τα παρακάτω:
    • Εικόνες στο minio-ouput path
    • Κάθε εικόνα πρέπει να έχει ως τίτλο το τι δείχνει (Θα χρησιμοποιηθεί στα επόμενα βήματα)
    • Ο τρόπος επικοινωνίας του Visualization Service με τον Orchestrator ακολουθεί την λογική και των υπόλοιπων services.

Image

  1. Όταν το Visualization Service ολοκληρώσει, ο Orchestrator κάνει το παρακάτω update στην MongoDB, στην DB: UIDB στο collection: pipelines στο document χρησιμοποιώντας το κλειδί { "analysisid" : <analysis-id> } και προσθέτει το παρακάτω πεδίο:
    "visualization" : {
    <vis-1> : [
       'metis/analysis-23415/visualization-11/chart1.html',
       'metis/analysis-23415/visualization-11/chart2.html',
       'metis/analysis-23415/visualization-11/chart3.html',
    ],
    <vis-2> : [
       'metis/analysis-23415/visualization-12/chart1.html',
       'metis/analysis-23415/visualization-12/chart2.html',
       'metis/analysis-23415/visualization-12/chart3.html',
    ],
    }
  2. Όταν η εφαρμογή ανάλυσης τελειώσει ο orchestrator προσθέτει στο document του Βήμα 5. το παρακάτω key-value:
    {
    "status":"completed"
    }

    Κατά την ολοκλήρωση της εφαρμογής στο μέλλον θα τοποθετούνται και metrics (we need more reasearh for that) με τον παρακάτω τρόπο στο ίδιο document:

"metrics" : {
    <metric-title-1> : [<minio-path-1>], # Ο τίτλος των αρχείων χρησιμοποιείτε για τον Χρήστη
    <metric-title-2> : [<minio-path-2>] # Ο τίτλος των αρχείων χρησιμοποιείτε για τον Χρήστη
}
karamolegkos commented 1 year ago

@konvoulgaris waiting for confirmation

konvoulgaris commented 1 year ago

yeah this generally sounds good, im playing around with a library to automatically determine best chart for data. ill be back as soon as i have more info to share

karamolegkos commented 1 year ago

Workflow has been updated for the Web App and Orchestrator connectivity.

konvoulgaris commented 1 year ago

Autoviz routing finally complete! Moving on to specification synchronicity...

karamolegkos commented 1 year ago

Needs to be deployed.

karamolegkos commented 1 year ago

After a lot of debugging this is working. Integraded ✔️

karamolegkos commented 1 year ago

It is working good. I suggest to close this issue ✔️.

karamolegkos commented 1 year ago

Remains open until Spark is integrated.

karamolegkos commented 1 year ago

Spark Integrated ✔️.