12345678910111213141516171819202122232425262728293031 |
- import { GraphiteLokiMapping } from '../types';
- /**
- * Converts a simple string used in LokiLogsMappings component (e.g. "servers.(name).*")
- * to data model saved in data source configuration.
- */
- export function fromString(text: string): GraphiteLokiMapping {
- return {
- matchers: text.split('.').map((metricNode) => {
- if (metricNode.startsWith('(') && metricNode.endsWith(')')) {
- return {
- value: '*',
- labelName: metricNode.slice(1, -1),
- };
- } else {
- return { value: metricNode };
- }
- }),
- };
- }
- /**
- * Coverts configuration stored in data source configuration into a string displayed in LokiLogsMappings component.
- */
- export function toString(mapping: GraphiteLokiMapping): string {
- return mapping.matchers
- .map((matcher) => {
- return matcher.labelName ? `(${matcher.labelName})` : `${matcher.value}`;
- })
- .join('.');
- }
|