getComponent() !== '' ) { $prefix .= ".{$metric->getComponent()}"; } foreach ( $metric->getSamples() as $sample ) { // dot-separate prefix, component, name, and label values `prefix.component.name.value1.value2` $stat = implode( '.', array_merge( [ $prefix, $metric->getName() ], $sample->getLabelValues() ) ); // merge value with separator `:42` $value = ':' . $sample->getValue(); // merge type indicator with separator `|c` $type = '|' . $metric->getTypeIndicator(); // blank string if samplerate is 1.0, otherwise add samplerate indicator `|@0.5` $sampleRate = $metric->getSampleRate() !== 1.0 ? '|@' . $metric->getSampleRate() : ''; // combine and append to output `prefix.component.name.value1.value2:42|c|@0.5` $output[] = $stat . $value . $type . $sampleRate; } return $output; } }