meshery: Update meshery results export to follow SMP

Created on 25 Apr 2020  Â·  18Comments  Â·  Source: layer5io/meshery

Description

Currently when you export a result, then a yaml file is downloaded. This file doesn't support SMP.
It only follows SMP partially...

Expected Behavior

Exported yaml should follow SMP.

Screenshots
image
Click on download button

Environment:

  • OS: Any
  • Browser: ANy
  • Version: Latest

- Device: Any

[Optional] To Reproduce
Steps to reproduce the behavior:

  1. Create a performance result for any mesh
  2. Click on results
  3. Scroll down to any result, select it and click on download on top bar
  4. Downloaded file doesn't follow SMPS.

[Optional] Additional Context

Currently results are downloaded in this format:-

start_time: 2020-04-02T03:43:59.524931729+05:30
end_time: 2020-04-02T03:44:09.526222812+05:30
exp_uuid: assafs-XXXX-XXXX-XXXX-XXXXXXXX
endpoint_url: http://10.0.2.15:31380/productpage
env:
  kubernetes: v1.17.3
client:
  connections: 5
  rps: 1232.3408945620827
  latencies_ms:
    min: 0.000133302
    average: 0.004056244610385397
    p50: 0.002047835195530726
    p90: 0.009221491228070174
    p99: 0.025705645161290324
    max: 0.243865731
metrics: {}

This result should follow https://github.com/layer5io/service-mesh-performance-specification/blob/master/smps.yaml

areperformance issuwillfix kinenhancement

All 18 comments

@vijcheru, would you like to take this issue up? I can help you if you want...

@vijcheru, would you like to take this issue up? I can help you if you want...

That would be fantastic. Our collaboration with Google on this spec will be advanced by work on this issue.

@leecalcote one approach to this is to store the result in some format, and then when downloading convert it to SMPS format. And the other is to store in meshery in the SMPS format. Which would be better? Also, another thing is that SMPS does not hold the details of the histogram.

@kushthedude can we push this item forward this week?

@utkarsh-pro and @NJnisarg, here you are.

I have identified the file/function to make changes to: https://github.com/layer5io/meshery/blob/master/models/load-test.go#L114 : ConvertToSpec()

I also had 2 questions:
1.) Is the spec mentioned in https://github.com/layer5io/meshery/blob/master/models/performance_spec.go up to date?
2.) Are all the metrics required by the spec being exposed by the load test results? (I did not see certain fields in the test result)

The following fields in the PerformanceSpec struct are not being filled out:
MeshBuild, ProxyBuild, ExpGroupUUID, ExpUUID, Profile, DetailsURI, Config, Metrics

How can we fill out structs like Metrics which are the largest ones. It would require a lot of information regarding the service mesh. Are there any APIs currently that expose that information? If no, then should we implement them in the adapters? @utkarsh-pro @leecalcote @abhishekkumkar

@NJnisarg, did you get the details you needed here?

So I did get a few APIs that give us the mesh information, but I think we need an API that gives us a view of the entire deployment and more information. For example, the following structs require extra information:

// IngressGateway - holds ingress gateway info
type IngressGateway struct {
    Count     int     `yaml:"count,omitempty"`
    CPUMCores float64 `yaml:"cpu_mCores,omitempty"`
    MemMb     float64 `yaml:"mem_mb,omitempty"`
    Rps       float64 `yaml:"rps,omitempty"`
    Bps       float64 `yaml:"bps,omitempty"`
}

// Sidecars - holds sidecars info
type Sidecars struct {
    Count     int     `yaml:"count,omitempty"`
    CPUMCores float64 `yaml:"cpu_mCores,omitempty"`
    MemMb     float64 `yaml:"mem_mb,omitempty"`
    Rps       float64 `yaml:"rps,omitempty"`
    Bps       float64 `yaml:"bps,omitempty"`
}

I was thinking of adding some function in kubernetes_scan.go file that can fetch this. Not fully sure though.

Also, I don't fully understand the fields in some of the structs. If someone who knows all the fields can help me a bit that would be nice.

@kalradev @dhruv0000 @kumarabd how close are we to having MeshSyncv2 APIs available?

@leecalcote is the meaning of these structs documented somewhere? Because even though the names are self-explanatory, it is a bit ambiguous. For example, CPUMCores, is it for the resource request or resource usage, also if it is usage, how do we consider the usage?

@kumarabd will you chime in here and point out the MeshSync v2 endpoints? Also, schedule a call with @NJnisarg and @vijcheru, if helpful?

@leecalcote By making the result follow SMP do we mean to populate all the fields present in performance_spec.go file? And then write this out accordingly to the YAML files?

Yes, that’s right.

On Mar 23, 2021, at 6:55 AM, Navendu Pottekkat @.*> wrote:


@leecalcote By making the result follow SMP do we mean to populate all the fields present in performance_spec.go file? And then write this out accordingly to the YAML files?

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.

    SMPVersion   string            `yaml:"smp_version,omitempty"`
    id           string            `yaml:"id,omitempty"`
    labels       map[string]string `yaml:"labels,omitempty"`
    DetailsURI   string            `yaml:"details_uri,omitempty"`
    TestID       string            `yaml:"test_id,omitempty"`
    MeshConfigID string            `yaml:"mesh_config_id,omitempty"`
    EnvID        string            `yaml:"env_id,omitempty"`

Are these values exposed by any APIs?
The rest of the values in the struct are exposed and I have formatted them to follow SMP when we export to YAML file.

Screenshot from 2021-03-26 09-20-19
// @leecalcote @utkarsh-pro @abhishekkumkar

That’s good progress. You might refer to the endpoint spreadsheet in the community drive as an easy reference for identifying other APIs

Let me check if I can find it

Was this page helpful?
0 / 5 - 0 ratings

Related issues

hexxdump picture hexxdump  Â·  4Comments

leecalcote picture leecalcote  Â·  3Comments

leecalcote picture leecalcote  Â·  3Comments

chandrashritii picture chandrashritii  Â·  3Comments

anirudhjain75 picture anirudhjain75  Â·  4Comments