|
108 | 108 | histogram = opentelemetry.metrics.Histogram(HistogramProxy, name, description, unit); |
109 | 109 | end |
110 | 110 |
|
111 | | - function obscounter = createObservableCounter(obj, callback, name, description, unit) |
| 111 | + function obscounter = createObservableCounter(obj, callback, name, ... |
| 112 | + description, unit, timeout) |
112 | 113 | % CREATEOBSERVABLECOUNTER Create an observable counter |
113 | 114 | % C = CREATEOBSERVABLECOUNTER(M, CALLBACK, NAME) creates an |
114 | 115 | % observable counter with the specified callback function |
|
117 | 118 | % output of type opentelemetry.metrics.ObservableResult. |
118 | 119 | % The counter's value can only increase but not decrease. |
119 | 120 | % |
120 | | - % C = CREATEOBSERVABLECOUNTER(M, CALLBACK NAME, DESCRIPTION, UNIT) |
| 121 | + % C = CREATEOBSERVABLECOUNTER(M, CALLBACK, NAME, DESCRIPTION, UNIT) |
121 | 122 | % also specifies a description and a unit. |
122 | 123 | % |
| 124 | + % C = CREATEOBSERVABLECOUNTER(M, CALLBACK, NAME, DESCRIPTION, UNIT, TIMEOUT) |
| 125 | + % also specifies the maximum time before callback is timed |
| 126 | + % out and its results not get recorded. TIMEOUT must be a |
| 127 | + % duration. |
| 128 | + % |
123 | 129 | % See also OPENTELEMETRY.METRICS.OBSERVABLERESULT, |
124 | 130 | % CREATEOBSERVABLEUPDOWNCOUNTER, CREATEOBSERVABLEGAUGE, CREATECOUNTER |
125 | 131 | arguments |
|
128 | 134 | name |
129 | 135 | description = "" |
130 | 136 | unit = "" |
| 137 | + timeout = opentelemetry.metrics.ObservableCounter.DefaultTimeout |
131 | 138 | end |
132 | 139 |
|
133 | | - [callback, name, description, unit] = processAsynchronousInputs(... |
134 | | - callback, name, description, unit); |
135 | | - id = obj.Proxy.createObservableCounter(name, description, unit, callback); |
| 140 | + [callback, name, description, unit, timeout] = processAsynchronousInputs(... |
| 141 | + callback, name, description, unit, timeout); |
| 142 | + id = obj.Proxy.createObservableCounter(name, description, unit, ... |
| 143 | + callback, milliseconds(timeout)); |
136 | 144 | ObservableCounterproxy = libmexclass.proxy.Proxy("Name", ... |
137 | 145 | "libmexclass.opentelemetry.ObservableCounterProxy", "ID", id); |
138 | 146 | obscounter = opentelemetry.metrics.ObservableCounter(ObservableCounterproxy, name, description, unit, callback); |
139 | 147 | end |
140 | 148 |
|
141 | | - function obsudcounter = createObservableUpDownCounter(obj, callback, name, description, unit) |
| 149 | + function obsudcounter = createObservableUpDownCounter(obj, callback, ... |
| 150 | + name, description, unit, timeout) |
142 | 151 | % CREATEOBSERVABLEUPDOWNCOUNTER Create an observable UpDownCounter |
143 | 152 | % C = CREATEOBSERVABLEUPDOWNCOUNTER(M, CALLBACK, NAME) |
144 | 153 | % creates an observable UpDownCounter with the specified |
|
149 | 158 | % |
150 | 159 | % C = CREATEOBSERVABLEUPDOWNCOUNTER(M, CALLBACK, NAME, DESCRIPTION, UNIT) |
151 | 160 | % also specifies a description and a unit. |
152 | | - % |
| 161 | + % |
| 162 | + % C = CREATEOBSERVABLEUPDOWNCOUNTER(M, CALLBACK, NAME, DESCRIPTION, UNIT, TIMEOUT) |
| 163 | + % also specifies the maximum time before callback is timed |
| 164 | + % out and its results not get recorded. TIMEOUT must be a |
| 165 | + % duration. |
| 166 | + % |
153 | 167 | % See also OPENTELEMETRY.METRICS.OBSERVABLERESULT, |
154 | 168 | % CREATEOBSERVABLECOUNTER, CREATEOBSERVABLEGAUGE, CREATEUPDOWNCOUNTER |
155 | 169 | arguments |
|
158 | 172 | name |
159 | 173 | description = "" |
160 | 174 | unit = "" |
| 175 | + timeout = opentelemetry.metrics.ObservableUpDownCounter.DefaultTimeout |
161 | 176 | end |
162 | 177 |
|
163 | | - [callback, name, description, unit] = processAsynchronousInputs(... |
164 | | - callback, name, description, unit); |
165 | | - id = obj.Proxy.createObservableUpDownCounter(name, description, unit, callback); |
| 178 | + [callback, name, description, unit, timeout] = processAsynchronousInputs(... |
| 179 | + callback, name, description, unit, timeout); |
| 180 | + id = obj.Proxy.createObservableUpDownCounter(name, description, ... |
| 181 | + unit, callback, milliseconds(timeout)); |
166 | 182 | ObservableUpDownCounterproxy = libmexclass.proxy.Proxy("Name", ... |
167 | 183 | "libmexclass.opentelemetry.ObservableUpDownCounterProxy", "ID", id); |
168 | 184 | obsudcounter = opentelemetry.metrics.ObservableUpDownCounter(... |
169 | 185 | ObservableUpDownCounterproxy, name, description, unit, callback); |
170 | 186 | end |
171 | 187 |
|
172 | | - function obsgauge = createObservableGauge(obj, callback, name, description, unit) |
| 188 | + function obsgauge = createObservableGauge(obj, callback, name, ... |
| 189 | + description, unit, timeout) |
173 | 190 | % CREATEOBSERVABLEGAUGE Create an observable gauge |
174 | 191 | % C = CREATEOBSERVABLEGAUGE(M, CALLBACK, NAME) creates an |
175 | 192 | % observable gauge with the specified callback function |
|
179 | 196 | % A gauge's value can increase or decrease but it should |
180 | 197 | % never be summed in aggregation. |
181 | 198 | % |
182 | | - % C = CREATEOBSERVABLEGAUGE(M, CALLBACK NAME, DESCRIPTION, UNIT) |
| 199 | + % C = CREATEOBSERVABLEGAUGE(M, CALLBACK, NAME, DESCRIPTION, UNIT) |
183 | 200 | % also specifies a description and a unit. |
184 | | - % |
| 201 | + % |
| 202 | + % C = CREATEOBSERVABLEGAUGE(M, CALLBACK, NAME, DESCRIPTION, UNIT, TIMEOUT) |
| 203 | + % also specifies the maximum time before callback is timed |
| 204 | + % out and its results not get recorded. TIMEOUT must be a |
| 205 | + % positive duration scalar. |
| 206 | + % |
185 | 207 | % See also OPENTELEMETRY.METRICS.OBSERVABLERESULT, |
186 | 208 | % CREATEOBSERVABLECOUNTER, CREATEOBSERVABLEUPDOWNCOUNTER |
187 | 209 | arguments |
|
190 | 212 | name |
191 | 213 | description = "" |
192 | 214 | unit = "" |
| 215 | + timeout = opentelemetry.metrics.ObservableGauge.DefaultTimeout |
193 | 216 | end |
194 | 217 |
|
195 | | - [callback, name, description, unit] = processAsynchronousInputs(... |
196 | | - callback, name, description, unit); |
197 | | - id = obj.Proxy.createObservableGauge(name, description, unit, callback); |
| 218 | + [callback, name, description, unit, timeout] = processAsynchronousInputs(... |
| 219 | + callback, name, description, unit, timeout); |
| 220 | + id = obj.Proxy.createObservableGauge(name, description, unit, ... |
| 221 | + callback, milliseconds(timeout)); |
198 | 222 | ObservableGaugeproxy = libmexclass.proxy.Proxy("Name", ... |
199 | 223 | "libmexclass.opentelemetry.ObservableGaugeProxy", "ID", id); |
200 | 224 | obsgauge = opentelemetry.metrics.ObservableGauge(... |
|
211 | 235 | unit = mustBeScalarString(unit); |
212 | 236 | end |
213 | 237 |
|
214 | | -function [callback, name, description, unit] = processAsynchronousInputs(... |
215 | | - callback, name, description, unit) |
| 238 | +function [callback, name, description, unit, timeout] = processAsynchronousInputs(... |
| 239 | + callback, name, description, unit, timeout) |
216 | 240 | [name, description, unit] = processSynchronousInputs(name, description, unit); |
217 | 241 | if ~isa(callback, "function_handle") |
218 | 242 | callback = []; % callback is invalid, set to empty double |
219 | 243 | end |
| 244 | +timeout = opentelemetry.metrics.AsynchronousInstrument.mustBeScalarPositiveDurationTimeout(timeout); |
220 | 245 | end |
0 commit comments