aboutsummaryrefslogtreecommitdiffstats
path: root/adapter/vppapiclient/stat_client.go
diff options
context:
space:
mode:
authorVladimir Lavor <vlavor@cisco.com>2021-03-17 12:27:10 +0100
committerVladimir Lavor <vlavor@cisco.com>2021-05-05 13:26:19 +0200
commitc380ee6064379258768fdfe4e9d4ad9138980ec0 (patch)
tree28903f9ee23bb3206e21a2c04001ebfc560de944 /adapter/vppapiclient/stat_client.go
parenta6607d9c1ba37320984c13580c932076cbff6dd6 (diff)
statsclient: allow index as pattern
* ListStats() returns stats identifiers containing the stat name and index * New method PrepareDirOnIndex(indexes...). Instead of the name filter it does not browse through all available indexes * Stats example shows how to get the last epoch value (added "e" or "epoch" command) Change-Id: Ibb15090fb0dfdb7f9b0ecf8ac07a5eb9a9ace8f8 Signed-off-by: Vladimir Lavor <vlavor@cisco.com>
Diffstat (limited to 'adapter/vppapiclient/stat_client.go')
-rw-r--r--adapter/vppapiclient/stat_client.go18
1 files changed, 14 insertions, 4 deletions
diff --git a/adapter/vppapiclient/stat_client.go b/adapter/vppapiclient/stat_client.go
index a124f59..734c158 100644
--- a/adapter/vppapiclient/stat_client.go
+++ b/adapter/vppapiclient/stat_client.go
@@ -83,7 +83,7 @@ func (c *statClient) Disconnect() error {
return nil
}
-func (c *statClient) ListStats(patterns ...string) (stats []string, err error) {
+func (c *statClient) ListStats(patterns ...string) (indexes []adapter.StatIdentifier, err error) {
dir := C.govpp_stat_segment_ls(convertStringSlice(patterns))
if dir == nil {
return nil, adapter.ErrStatsDataBusy
@@ -93,11 +93,14 @@ func (c *statClient) ListStats(patterns ...string) (stats []string, err error) {
l := C.govpp_stat_segment_vec_len(unsafe.Pointer(dir))
for i := 0; i < int(l); i++ {
nameChar := C.govpp_stat_segment_dir_index_to_name(dir, C.uint32_t(i))
- stats = append(stats, C.GoString(nameChar))
+ indexes = append(indexes, adapter.StatIdentifier{
+ Name: []byte(C.GoString(nameChar)),
+ Index: uint32(i),
+ })
C.free(unsafe.Pointer(nameChar))
}
- return stats, nil
+ return indexes, nil
}
func (c *statClient) DumpStats(patterns ...string) (stats []adapter.StatEntry, err error) {
@@ -121,7 +124,10 @@ func (c *statClient) DumpStats(patterns ...string) (stats []adapter.StatEntry, e
typ := adapter.StatType(C.govpp_stat_segment_data_type(&v))
stat := adapter.StatEntry{
- Name: []byte(name),
+ StatIdentifier: adapter.StatIdentifier{
+ Name: []byte(name),
+ Index: uint32(i),
+ },
Type: typ,
}
@@ -184,6 +190,10 @@ func (c *statClient) PrepareDir(prefixes ...string) (*adapter.StatDir, error) {
return nil, adapter.ErrNotImplemented
}
+func (c *statClient) PrepareDirOnIndex(indexes ...uint32) (*adapter.StatDir, error) {
+ return nil, adapter.ErrNotImplemented
+}
+
func (c *statClient) UpdateDir(dir *adapter.StatDir) error {
return adapter.ErrNotImplemented
}