<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sunfish.git/opendc-telemetry/opendc-telemetry-compute/src, branch master</title>
<subtitle>The OpenDC BSc thesis repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/'/>
<entry>
<title>refactor(compute/service): Remove OpenTelemetry from "compute" modules</title>
<updated>2022-05-06T16:37:36+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2022-05-04T14:24:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=c7eec7904e08029b3ab31d3e7b21afa1ea9ab7e6'/>
<id>c7eec7904e08029b3ab31d3e7b21afa1ea9ab7e6</id>
<content type='text'>
This change removes the OpenTelemetry integration from the OpenDC
Compute modules. Previously, we chose to integrate OpenTelemetry to
provide a unified way to report metrics to the users.

Although this worked as expected, the overhead of the OpenTelemetry when
collecting metrics during simulation was considerable and lacked more
optimization opportunities (other than providing a separate API
implementation). Furthermore, since we were tied to OpenTelemetry's SDK
implementation, we experienced issues with throttling and registering
multiple instruments.

We will instead use another approach, where we expose the core metrics
in OpenDC via specialized interfaces (see the commits before) such that
access is fast and can be done without having to interface with
OpenTelemetry. In addition, we will provide an adapter to that is able
to forward these metrics to OpenTelemetry implementations, so we can
still integrate with the wider ecosystem.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change removes the OpenTelemetry integration from the OpenDC
Compute modules. Previously, we chose to integrate OpenTelemetry to
provide a unified way to report metrics to the users.

Although this worked as expected, the overhead of the OpenTelemetry when
collecting metrics during simulation was considerable and lacked more
optimization opportunities (other than providing a separate API
implementation). Furthermore, since we were tied to OpenTelemetry's SDK
implementation, we experienced issues with throttling and registering
multiple instruments.

We will instead use another approach, where we expose the core metrics
in OpenDC via specialized interfaces (see the commits before) such that
access is fast and can be done without having to interface with
OpenTelemetry. In addition, we will provide an adapter to that is able
to forward these metrics to OpenTelemetry implementations, so we can
still integrate with the wider ecosystem.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(telemetry/compute): Support direct metric access</title>
<updated>2022-05-06T15:45:23+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2022-05-06T15:45:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=7981e9aa3e6854ad593a5af85f8eb56874299d7e'/>
<id>7981e9aa3e6854ad593a5af85f8eb56874299d7e</id>
<content type='text'>
This change introduces a `ComputeMetricReader` class that can be used as
a replacement for the `CoroutineMetricReader` class when reading metrics
from the Compute service. This implementation operates directly on a
`ComputeService` instance, providing better performance.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change introduces a `ComputeMetricReader` class that can be used as
a replacement for the `CoroutineMetricReader` class when reading metrics
from the Compute service. This implementation operates directly on a
`ComputeService` instance, providing better performance.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(telemetry): Fix reporting of CPU time</title>
<updated>2022-02-18T15:47:45+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2022-01-11T12:44:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=2615c1c3e6c3f79bc14386398bb1d14d65c17512'/>
<id>2615c1c3e6c3f79bc14386398bb1d14d65c17512</id>
<content type='text'>
This change fixes an issue with the CPU time aggregation for VMs in the
ComputeMetricAggregator, leading to incorrect values.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change fixes an issue with the CPU time aggregation for VMs in the
ComputeMetricAggregator, leading to incorrect values.
</pre>
</div>
</content>
</entry>
<entry>
<title>perf(telemetry): Prevent allocations during collection cycle</title>
<updated>2021-10-25T15:58:54+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-10-15T13:32:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=17951889c6d805b907d936d54e7e66efb7376879'/>
<id>17951889c6d805b907d936d54e7e66efb7376879</id>
<content type='text'>
This change redesigns the ComputeMonitor interface to reduce the number
of memory allocations necessary during a collection cycle.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change redesigns the ComputeMonitor interface to reduce the number
of memory allocations necessary during a collection cycle.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(telemetry): Report provisioning time of virtual machines</title>
<updated>2021-10-25T15:58:53+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-10-13T13:42:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=f565afb1ef7b940804af62aa73b6859dcb78a847'/>
<id>f565afb1ef7b940804af62aa73b6859dcb78a847</id>
<content type='text'>
This change adds support for collecting the provisioning time of virtual
machines in addition to their boot time.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change adds support for collecting the provisioning time of virtual
machines in addition to their boot time.
</pre>
</div>
</content>
</entry>
<entry>
<title>perf(telemetry): Do not allocate lambda in fast-path</title>
<updated>2021-10-25T15:58:49+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-10-14T15:00:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=a1be58f1013697223a339a6a49302e1e42a6662d'/>
<id>a1be58f1013697223a339a6a49302e1e42a6662d</id>
<content type='text'>
This commit changes the lookup for host and server aggregators to use
`getOrPut` instead of `computeIfAbsent`. The former will inline the
lambda and not cause any memory allocation in the fast-path (e.g., the
key exists), while the latter always allocates lambda for constructing
the aggregator.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit changes the lookup for host and server aggregators to use
`getOrPut` instead of `computeIfAbsent`. The former will inline the
lambda and not cause any memory allocation in the fast-path (e.g., the
key exists), while the latter always allocates lambda for constructing
the aggregator.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(telemetry): Report cause of compute exporter failure</title>
<updated>2021-09-28T08:52:38+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-09-23T12:46:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=94d8ee69e52dcd375a662a08c198aa29670362fb'/>
<id>94d8ee69e52dcd375a662a08c198aa29670362fb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(telemetry): Do not require clock for ComputeMetricExporter</title>
<updated>2021-09-28T08:52:03+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-09-22T10:43:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=30cd010f1f98262aa7f264bb3c3eb6028b8495c5'/>
<id>30cd010f1f98262aa7f264bb3c3eb6028b8495c5</id>
<content type='text'>
This change drops the requirement for a clock parameter when
constructing a ComputeMetricExporter, since it will now derive the
timestamp from the recorded metrics.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change drops the requirement for a clock parameter when
constructing a ComputeMetricExporter, since it will now derive the
timestamp from the recorded metrics.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(telemetry): Standardize SimHost metrics</title>
<updated>2021-09-17T14:52:29+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-09-07T15:30:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=0d8bccc68705d036fbf60f312d9c34ca4392c6b2'/>
<id>0d8bccc68705d036fbf60f312d9c34ca4392c6b2</id>
<content type='text'>
This change standardizes the metrics emitted by SimHost instances and
their guests based on the OpenTelemetry semantic conventions. We now
also report CPU time as opposed to CPU work as this metric is more
commonly used.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change standardizes the metrics emitted by SimHost instances and
their guests based on the OpenTelemetry semantic conventions. We now
also report CPU time as opposed to CPU work as this metric is more
commonly used.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(telemetry): Standardize compute scheduler metrics</title>
<updated>2021-09-17T14:51:07+00:00</updated>
<author>
<name>Fabian Mastenbroek</name>
<email>mail.fabianm@gmail.com</email>
</author>
<published>2021-09-14T13:38:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.denounce.ai/sunfish.git/commit/?id=8d899e29dbd757f6df320212d6e0d77ce8216ab9'/>
<id>8d899e29dbd757f6df320212d6e0d77ce8216ab9</id>
<content type='text'>
This change updates the OpenDC compute service implementation with
multiple meters that follow the OpenTelemetry conventions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change updates the OpenDC compute service implementation with
multiple meters that follow the OpenTelemetry conventions.
</pre>
</div>
</content>
</entry>
</feed>
