|
2 | 2 | % A Meter creates metric instruments, capturing measurements about a service at runtime. |
3 | 3 | % Meters are created from Meter Providers. |
4 | 4 |
|
5 | | - % Copyright 2023 The MathWorks, Inc. |
| 5 | + % Copyright 2023-2024 The MathWorks, Inc. |
6 | 6 |
|
7 | 7 | properties (SetAccess=immutable) |
8 | 8 | Name (1,1) string % Meter name |
|
29 | 29 |
|
30 | 30 | methods |
31 | 31 |
|
32 | | - function counter = createCounter(obj, ctname, ctdescription, ctunit) |
| 32 | + function counter = createCounter(obj, name, description, unit) |
33 | 33 | % CREATECOUNTER Create a counter |
34 | 34 | % C = CREATECOUNTER(M, NAME) creates a counter with the specified |
35 | 35 | % name. A counter's value can only increase but not |
|
38 | 38 | % C = CREATECOUNTER(M, NAME, DESCRIPTION, UNIT) also |
39 | 39 | % specifies a description and a unit. |
40 | 40 | % |
41 | | - % See also CREATEUPDOWNCOUNTER, CREATEHISTOGRAM |
| 41 | + % See also CREATEUPDOWNCOUNTER, CREATEHISTOGRAM, |
| 42 | + % CREATEOBSERVABLECOUNTER |
42 | 43 | arguments |
43 | 44 | obj |
44 | | - ctname |
45 | | - ctdescription = "" |
46 | | - ctunit = "" |
| 45 | + name |
| 46 | + description = "" |
| 47 | + unit = "" |
47 | 48 | end |
48 | | - import opentelemetry.common.mustBeScalarString |
49 | | - ctname = mustBeScalarString(ctname); |
50 | | - ctdescription = mustBeScalarString(ctdescription); |
51 | | - ctunit = mustBeScalarString(ctunit); |
52 | | - id = obj.Proxy.createCounter(ctname, ctdescription, ctunit); |
| 49 | + [name, description, unit] = processSynchronousInputs(name, ... |
| 50 | + description, unit); |
| 51 | + id = obj.Proxy.createCounter(name, description, unit); |
53 | 52 | CounterProxy = libmexclass.proxy.Proxy("Name", ... |
54 | 53 | "libmexclass.opentelemetry.CounterProxy", "ID", id); |
55 | | - counter = opentelemetry.metrics.Counter(CounterProxy, ctname, ctdescription, ctunit); |
| 54 | + counter = opentelemetry.metrics.Counter(CounterProxy, name, description, unit); |
56 | 55 | end |
57 | 56 |
|
58 | 57 |
|
59 | | - function updowncounter = createUpDownCounter(obj, ctname, ctdescription, ctunit) |
| 58 | + function updowncounter = createUpDownCounter(obj, name, description, unit) |
60 | 59 | % CREATEUPDOWNCOUNTER Create an UpDownCounter |
61 | 60 | % C = CREATEUPDOWNCOUNTER(M, NAME) creates an UpDownCounter |
62 | 61 | % with the specified name. An UpDownCounter's value can |
|
65 | 64 | % C = CREATEUPDOWNCOUNTER(M, NAME, DESCRIPTION, UNIT) also |
66 | 65 | % specifies a description and a unit. |
67 | 66 | % |
68 | | - % See also CREATECOUNTER, CREATEHISTOGRAM |
| 67 | + % See also CREATECOUNTER, CREATEHISTOGRAM, |
| 68 | + % CREATEOBSERVABLEUPDOWNCOUNTER |
69 | 69 | arguments |
70 | 70 | obj |
71 | | - ctname |
72 | | - ctdescription = "" |
73 | | - ctunit = "" |
| 71 | + name |
| 72 | + description = "" |
| 73 | + unit = "" |
74 | 74 | end |
75 | 75 |
|
76 | | - import opentelemetry.common.mustBeScalarString |
77 | | - ctname = mustBeScalarString(ctname); |
78 | | - ctdescription = mustBeScalarString(ctdescription); |
79 | | - ctunit = mustBeScalarString(ctunit); |
80 | | - id = obj.Proxy.createUpDownCounter(ctname, ctdescription, ctunit); |
| 76 | + [name, description, unit] = processSynchronousInputs(name, ... |
| 77 | + description, unit); |
| 78 | + id = obj.Proxy.createUpDownCounter(name, description, unit); |
81 | 79 | UpDownCounterProxy = libmexclass.proxy.Proxy("Name", ... |
82 | 80 | "libmexclass.opentelemetry.UpDownCounterProxy", "ID", id); |
83 | | - updowncounter = opentelemetry.metrics.UpDownCounter(UpDownCounterProxy, ctname, ctdescription, ctunit); |
| 81 | + updowncounter = opentelemetry.metrics.UpDownCounter(UpDownCounterProxy, name, description, unit); |
84 | 82 | end |
85 | 83 |
|
86 | 84 |
|
87 | | - function histogram = createHistogram(obj, hiname, hidescription, hiunit) |
| 85 | + function histogram = createHistogram(obj, name, description, unit) |
88 | 86 | % CREATEHISTOGRAM Create a histogram |
89 | 87 | % H = CREATEHISTOGRAM(M, NAME) creates a histogram with the specified |
90 | 88 | % name. A histogram aggregates values into bins. Bins can be |
|
97 | 95 | % OPENTELEMETRY.SDK.METRICS.VIEW |
98 | 96 | arguments |
99 | 97 | obj |
100 | | - hiname |
101 | | - hidescription = "" |
102 | | - hiunit = "" |
| 98 | + name |
| 99 | + description = "" |
| 100 | + unit = "" |
103 | 101 | end |
104 | 102 |
|
105 | | - import opentelemetry.common.mustBeScalarString |
106 | | - hiname = mustBeScalarString(hiname); |
107 | | - hidescription = mustBeScalarString(hidescription); |
108 | | - hiunit = mustBeScalarString(hiunit); |
109 | | - id = obj.Proxy.createHistogram(hiname, hidescription, hiunit); |
| 103 | + [name, description, unit] = processSynchronousInputs(name, ... |
| 104 | + description, unit); |
| 105 | + id = obj.Proxy.createHistogram(name, description, unit); |
110 | 106 | HistogramProxy = libmexclass.proxy.Proxy("Name", ... |
111 | 107 | "libmexclass.opentelemetry.HistogramProxy", "ID", id); |
112 | | - histogram = opentelemetry.metrics.Histogram(HistogramProxy, hiname, hidescription, hiunit); |
| 108 | + histogram = opentelemetry.metrics.Histogram(HistogramProxy, name, description, unit); |
113 | 109 | end |
114 | 110 |
|
115 | | - end |
116 | | - |
| 111 | + function obscounter = createObservableCounter(obj, callback, name, description, unit) |
| 112 | + % CREATEOBSERVABLECOUNTER Create an observable counter |
| 113 | + % C = CREATEOBSERVABLECOUNTER(M, CALLBACK, NAME) creates an |
| 114 | + % observable counter with the specified callback function |
| 115 | + % and name. The callback function, specified as a |
| 116 | + % function handle, must accept no input and return one |
| 117 | + % output of type opentelemetry.metrics.ObservableResult. |
| 118 | + % The counter's value can only increase but not decrease. |
| 119 | + % |
| 120 | + % C = CREATEOBSERVABLECOUNTER(M, CALLBACK NAME, DESCRIPTION, UNIT) |
| 121 | + % also specifies a description and a unit. |
| 122 | + % |
| 123 | + % See also OPENTELEMETRY.METRICS.OBSERVABLERESULT, |
| 124 | + % CREATEOBSERVABLEUPDOWNCOUNTER, CREATEOBSERVABLEGAUGE, CREATECOUNTER |
| 125 | + arguments |
| 126 | + obj |
| 127 | + callback |
| 128 | + name |
| 129 | + description = "" |
| 130 | + unit = "" |
| 131 | + end |
| 132 | + |
| 133 | + [callback, name, description, unit] = processAsynchronousInputs(... |
| 134 | + callback, name, description, unit); |
| 135 | + id = obj.Proxy.createObservableCounter(name, description, unit, callback); |
| 136 | + ObservableCounterproxy = libmexclass.proxy.Proxy("Name", ... |
| 137 | + "libmexclass.opentelemetry.ObservableCounterProxy", "ID", id); |
| 138 | + obscounter = opentelemetry.metrics.ObservableCounter(ObservableCounterproxy, name, description, unit, callback); |
| 139 | + end |
| 140 | + |
| 141 | + function obsudcounter = createObservableUpDownCounter(obj, callback, name, description, unit) |
| 142 | + % CREATEOBSERVABLEUPDOWNCOUNTER Create an observable UpDownCounter |
| 143 | + % C = CREATEOBSERVABLEUPDOWNCOUNTER(M, CALLBACK, NAME) |
| 144 | + % creates an observable UpDownCounter with the specified |
| 145 | + % callback function and name. The callback function, |
| 146 | + % specified as a function handle, must accept no input and |
| 147 | + % return one output of type opentelemetry.metrics.ObservableResult. |
| 148 | + % The UpDownCounter's value can increase or decrease. |
| 149 | + % |
| 150 | + % C = CREATEOBSERVABLEUPDOWNCOUNTER(M, CALLBACK, NAME, DESCRIPTION, UNIT) |
| 151 | + % also specifies a description and a unit. |
| 152 | + % |
| 153 | + % See also OPENTELEMETRY.METRICS.OBSERVABLERESULT, |
| 154 | + % CREATEOBSERVABLECOUNTER, CREATEOBSERVABLEGAUGE, CREATEUPDOWNCOUNTER |
| 155 | + arguments |
| 156 | + obj |
| 157 | + callback |
| 158 | + name |
| 159 | + description = "" |
| 160 | + unit = "" |
| 161 | + end |
| 162 | + |
| 163 | + [callback, name, description, unit] = processAsynchronousInputs(... |
| 164 | + callback, name, description, unit); |
| 165 | + id = obj.Proxy.createObservableUpDownCounter(name, description, unit, callback); |
| 166 | + ObservableUpDownCounterproxy = libmexclass.proxy.Proxy("Name", ... |
| 167 | + "libmexclass.opentelemetry.ObservableUpDownCounterProxy", "ID", id); |
| 168 | + obsudcounter = opentelemetry.metrics.ObservableUpDownCounter(... |
| 169 | + ObservableUpDownCounterproxy, name, description, unit, callback); |
| 170 | + end |
| 171 | + |
| 172 | + function obsgauge = createObservableGauge(obj, callback, name, description, unit) |
| 173 | + % CREATEOBSERVABLEGAUGE Create an observable gauge |
| 174 | + % C = CREATEOBSERVABLEGAUGE(M, CALLBACK, NAME) creates an |
| 175 | + % observable gauge with the specified callback function |
| 176 | + % and name. The callback function, specified as a |
| 177 | + % function handle, must accept no input and return one |
| 178 | + % output of type opentelemetry.metrics.ObservableResult. |
| 179 | + % A gauge's value can increase or decrease but it should |
| 180 | + % never be summed in aggregation. |
| 181 | + % |
| 182 | + % C = CREATEOBSERVABLEGAUGE(M, CALLBACK NAME, DESCRIPTION, UNIT) |
| 183 | + % also specifies a description and a unit. |
| 184 | + % |
| 185 | + % See also OPENTELEMETRY.METRICS.OBSERVABLERESULT, |
| 186 | + % CREATEOBSERVABLECOUNTER, CREATEOBSERVABLEUPDOWNCOUNTER |
| 187 | + arguments |
| 188 | + obj |
| 189 | + callback |
| 190 | + name |
| 191 | + description = "" |
| 192 | + unit = "" |
| 193 | + end |
| 194 | + |
| 195 | + [callback, name, description, unit] = processAsynchronousInputs(... |
| 196 | + callback, name, description, unit); |
| 197 | + id = obj.Proxy.createObservableGauge(name, description, unit, callback); |
| 198 | + ObservableGaugeproxy = libmexclass.proxy.Proxy("Name", ... |
| 199 | + "libmexclass.opentelemetry.ObservableGaugeProxy", "ID", id); |
| 200 | + obsgauge = opentelemetry.metrics.ObservableGauge(... |
| 201 | + ObservableGaugeproxy, name, description, unit, callback); |
| 202 | + end |
| 203 | + end |
| 204 | +end |
| 205 | + |
| 206 | +function [name, description, unit] = processSynchronousInputs(name, ... |
| 207 | + description, unit) |
| 208 | +import opentelemetry.common.mustBeScalarString |
| 209 | +name = mustBeScalarString(name); |
| 210 | +description = mustBeScalarString(description); |
| 211 | +unit = mustBeScalarString(unit); |
| 212 | +end |
| 213 | + |
| 214 | +function [callback, name, description, unit] = processAsynchronousInputs(... |
| 215 | + callback, name, description, unit) |
| 216 | +[name, description, unit] = processSynchronousInputs(name, description, unit); |
| 217 | +if ~isa(callback, "function_handle") |
| 218 | + callback = []; % callback is invalid, set to empty double |
| 219 | +end |
117 | 220 | end |
0 commit comments