You can now observe the development of your device Fleet even better via fully
customizable Device Sets
(Fleet→Device Sets). Based on your project-specific
Device Attributes and Time-Series Metrics each set
describes devices that match unique criteria such as "devices that exceeded 40MB
of daily network traffic" or "devices in the UK".
You can create a Device Set from any existing device search and use them to
track key performance indicators over time.
The new chart type Issue Chart
complements the custom Metrics Chart (Dashboards→Metrics) and plots the number
of occurrences of a specific group of issues over time. When combined with the
recently introduced
Chart Comparison Mode, Issue Charts
allow for sophisticated tracking of ongoing software updates to answer the
relevant question "does my software update fix the bugs it claims to fix?"
Since the introduction of Custom Metrics, Memfault
provided various ways to define charts for plotting Fleet-wide aggregations
(sum, count, min, max, mean). These charts are often used to visualize trends
over time (e.g. "hours between recharge") or to detect anomalies (e.g. "attempt
until successful connect") for a subset of the Fleet. The controls in the
top-right corner allow for ad-hoc filtering by Cohort and/or software version.
With the advent of the
Chart Comparison Mode, users can
now apply up to 4 such filters simultaneously to plot the resulting data series
side-by-side inside each custom chart.
Use this feature to visually compare your beta Cohort against the production
Fleet or to see at a glance if there are any regressions for key metrics between
the last software versions.
Sometimes, products span across multiple devices: Each pair of wireless earplugs
has a left and right version, for each smart home installation there may be
multiple components in a network, or some related device information lives
outside of Memfault, and your workflow benefits from quick navigation to another
software system.
Memfault's Linked Devices provide convenient navigation in these scenarios. It
builds these connections by looking at Device Attributes that can be edited in
the UI, updated via API, or sent from devices at any time.
This optional debugging feature tags all heap allocations with their respective
size, address, and location of code that allocated it. Use it to understand
memory distribution, heap fragmentation, or to find memory leaks in an
out-of-memory situation in the field.
Memfault's frontend is now more upfront with the visualization of
quotas and rate limits that may affect large
projects.
When managing
Timeseries Metrics and Device Attributes, Memfault
informs about the number of remaining metrics for Fleet-wide analytics. The
dedicated page at Settings→Quotas presents an overview.
Memfault's Firmware SDK now includes support for what we are calling "Compact
Logs". It is similar to Zephyr's
dictionary-based-logging
and a few other implementations in other RTOS's, but we think we've hit the
perfect balance of performance, features, ease-of-use, and size compression.
Let's walk through a quick example of what compact logs are. Here is a log line
that a user of the Memfault SDK could write:
With a generic formatted string implementation such as printf, we would need
to include the entire string contents in our log buffer or storage. In total,
this requires 41 bytes.
Once developers run out of firmware code space, a common pattern is to start
shortening log lines or removing them entirely. We believe this is a bad
practice! We should be able to keep our useful log lines and make the messages
as long as necessary!
This is why we created compact logs. With compact logs, every log "string" is
placed in a special section in the ELF file and we just need to reference each
log line with an index, or ID.
For a compact log, we just need to encode an integer ID for the string portion
and the arguments to be serialized. In this example, this information requires
just 5 bytes.
00000000: 8218 8805 ....
In this example, we can reduce the storage occupied by 88%! For a firmware that
contains 100-1000 log lines, these savings are dramatic.
Along with compact logs, we've been busy adding more ways to filter and slice
the data in our application and building up some exciting features related to
Custom Events and State. More news to come next month.
Nordic Semiconductor's nRF Connect SDK now has Memfault's SDK built-in, allowing
for customers and users of Nordic's chips and tools to integrate and use
Memfault in minutes.
One of Memfault's most capable features is Metrics. With Metrics, you can
determine how specific metrics on a single device correlate with each other to
root cause performance and power regressions, or aggregate them on a Fleet level
and determine whether the health of your Fleet of devices is improving over
time!
We're announcing new features today which should help make our metrics feature
more usable.
First, users can now view all the Metric names that have been received from
Heartbeat events in the Settings → Metrics page. This allows for easy
auditing of metric names and configurations.
If you find any that are stale or shouldn't be tracked anymore, you can archive
them.
When Edit is clicked, users can configure the valid ranges for the metric,
which will improve the displayed charts by normalizing the Y-axis to possible
values. An example of where this could be useful is battery life, where the min
and max values are 0-100.
Users can also specify a single value for Memfault to ignore, such as
0xffffffff, which can represent the absence of a value.
These new features will enable developers and customer support representatives
to more easily dig into the health of a single device and the entire Fleet.
That's not all though! We've made more improvements to symbol file uploading,
bugreport filtering, and the archiving of software versions.
The day you have all (maybe) been waiting for is here! Anyone can now sign up
for a free trial of Memfault! There is no sales team in your way of getting your
devices integrated with Memfault and monitoring your Fleet of devices.
Many improvements have been happening on the Android side of the product,
primarily when viewing Caliper data within the Timeline view. We now include
almost every type of data a device can send in the timeline view, such as drop
box manager entries, log files, traces, and more.
View the timeline by day, drill into specific hours, and navigate to the pieces
of data that you want to investigate!
Make your Issue list more organized and concise with the new Issue merging
feature! Users can now merge Issues together by clicking the Merge button on the
detail page of an Issue and then selecting which Issue to be its parent.
This workflow is especially useful when there are multiple Issues stemming from
the same root cause, such as a stack overflow that presents itself with
different backtraces.
This feature is available for both Android and Real-Time products.
Memfault's Bort SDK v3.0 has been released,
which includes Memfault Caliper.
The Caliper system supports Trace collection from various subsystems, as well as
per device and Fleet-wide metrics collection via the Android batterystats
subsystem. Additional data sources, such as logs and system properties, are in
development and are coming soon!
Memfault's Caliper is designed to have minimal effects on runtime performance,
as well as consume less bandwidth and storage than sending bug reports.
To compare and contrast how Bug Reports and Memfault Caliper differ, please
refer to the Bort SDK Reference docs page.