Giter Site home page Giter Site logo

Visualization Service about monitoring HOT 13 CLOSED

karamolegkos avatar karamolegkos commented on September 24, 2024
Visualization Service

from monitoring.

Comments (13)

konvoulgaris avatar konvoulgaris commented on September 24, 2024 2

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

from monitoring.

karamolegkos avatar karamolegkos commented on September 24, 2024 1

Ξαναχρησιμοποιούμε πλέων το παρακάτω 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',
    ],
}
  1. Όταν η εφαρμογή ανάλυσης τελειώσει ο 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>] # Ο τίτλος των αρχείων χρησιμοποιείτε για τον Χρήστη
}

from monitoring.

karamolegkos avatar karamolegkos commented on September 24, 2024 1

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

from monitoring.

konvoulgaris avatar konvoulgaris commented on September 24, 2024

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

from monitoring.

adreaskar avatar adreaskar commented on September 24, 2024

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

I see two scenarios:

  • Το Visualization Service κάνει generate όλα τα plots ahead of time και τα αποθηκεύει σε κάποιο αποθετήριο (perhaps MinIO?), και αποθηκεύει το retrieval url στην MongoDB. Ο χρήστης μέσα απο το Visualization Interface, επιλέγει την ανάλυση για την οποία θέλει αποτελέσματα, και πατώντας Visualize Results το service παίρνει τα link απο την MongoDB που σχετίζονται με αυτήν την ανάλυση, και κάνει display τις εικόνες.
  • Το Visualization Service κάνει δυναμικά generate τις εικόνες τις οποίες χρειάζεται το Visualization Interface, στέλνοντας του απευθείας ένα list of urls, που θα είναι όλες οι εικόνες που πρέπει να κάνει Display. Δεν ξέρω εδώ βέβαια πως θα παίξει το κομμάτι του filtering.

Food for thought

from monitoring.

adreaskar avatar adreaskar commented on September 24, 2024

Update:

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

  1. Όταν μια ανάλυση τελειώνει ο Orchestrator πηγαίνει: MongoDB -> UIDB database -> Pipelines collection, να βρίσκει την εγγραφή αυτής της ανάλυσης και να προσθέτει στο πεδίο metadata την εγγραφή: "status":"completed"
  2. Το Visualization Interface σκανάρει όλο το Pipelines collection και εμφανίζει τις αναλύσεις που έχουν "status":"completed" Για κάθε ανάλυση παρέχει κάποια μεταδεδομένα καθώς και δύο κουμπιά:
    • Results
    • Monitor
  3. Το Visualization Service για κάθε analysis που είναι "status":"completed", παράγει όλα γραφήματα απο τα αποτελέσματα και τις μετρικές.
    • Για κάθε ένα απο αυτά, δημιουργεί ένα link της εικόνας, τα οποία τα αποθηκεύει όλα μαζί στο πεδίο metadata, σε μια νέα εγραφή της μορφής: "charts":["url1","url2","url3", ... ]
    • Επιπλεων, αποθηκεύει στο ίδιο πεδίο μια νέα εγγραφή της μορφής: "charts-info":["metric1","metric2","result1", ... ]
      Αυτό θα περιέχει τις περιγραφές των γραφημάτων, και θα τοποθετούνται με την ίδια σειρα που τοποθετήθηκαν τα charts urls.
      Το charts-info στην ουσία θα χρησιμοποιηθεί σαν τις επιλογές που θα έχει ο χρήστης για να φιλτράρει τα charts που θα βλέπει.
  4. Δεν ξέρω πως θα κινηθούμε με το Monitoring Service άλλα θα πρότεινα να κάνει αντίστοιχη δουλεία με αυτό που περιέγραψα στο προηγούμενο βήμα.
    • Να δημιουργεί στο πεδίο metadata μια νέα εγγραφή της μορφής: "monitoring-charts":["url1", ... ]
    • Καθώς και μια εγγραφή: "monitoring-charts-info":["metric1", ... ]
  5. Και τέλος, ανάλογα με το ποιο κουμπί θα πατήσει ο χρήστης στο βήμα 2, το Visualization Interface θα ανατρέχει στην MongoDB, στο collection Pipelines, και θα εμφανίζει την αντίστοιχη πληροφορία που χρειάζεται.

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

from monitoring.

karamolegkos avatar karamolegkos commented on September 24, 2024

@konvoulgaris waiting for confirmation

from monitoring.

konvoulgaris avatar konvoulgaris commented on September 24, 2024

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

from monitoring.

karamolegkos avatar karamolegkos commented on September 24, 2024

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

from monitoring.

karamolegkos avatar karamolegkos commented on September 24, 2024

Needs to be deployed.

from monitoring.

karamolegkos avatar karamolegkos commented on September 24, 2024

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

from monitoring.

karamolegkos avatar karamolegkos commented on September 24, 2024

Remains open until Spark is integrated.

from monitoring.

karamolegkos avatar karamolegkos commented on September 24, 2024

Spark Integrated ✔️.

from monitoring.

Related Issues (6)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.