Skip to content

Commit 9917c4e

Browse files
committed
InfluxDB quote keys/values
- `Output::InfluxDB`: Fix #31: Quote empty values as `""`
1 parent e132e82 commit 9917c4e

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

lib/App/DSC/DataTool/Output/InfluxDB.pm

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ sub Dataset {
119119
my $self = shift;
120120

121121
foreach my $dataset ( @_ ) {
122-
my $tags = _quote( lc( $dataset->Name ) ) . ',server=' . _quote( $dataset->Server ) . ',node=' . _quote( $dataset->Node );
122+
my $tags = _quote_key( lc( $dataset->Name ) ) . ',server=' . _quote_value( $dataset->Server ) . ',node=' . _quote_value( $dataset->Node );
123123
my $timestamp =
124124
$self->{timestamp} eq 'start'
125125
? $dataset->StartTime
@@ -149,7 +149,7 @@ sub Process {
149149

150150
if ( $dimension->HaveDimensions ) {
151151
unless ( $dimension->Name eq 'All' and $dimension->Value eq 'ALL' ) {
152-
$tags .= ',' . _quote( lc( $dimension->Name ) ) . '=' . _quote( $dimension->Value );
152+
$tags .= ',' . _quote_key( lc( $dimension->Name ) ) . '=' . _quote_value( $dimension->Value );
153153
}
154154

155155
foreach my $dimension2 ( $dimension->Dimensions ) {
@@ -171,26 +171,42 @@ sub Process {
171171
}
172172

173173
my %value = $dimension->Values;
174-
$tags .= ',' . _quote( lc( $dimension->Name ) ) . '=';
174+
$tags .= ',' . _quote_key( lc( $dimension->Name ) ) . '=';
175175
foreach ( keys %value ) {
176-
$self->{handle}->say( $tags, _quote( $_ ), ' value=', $value{$_}, ' ', $timestamp );
176+
$self->{handle}->say( $tags, _quote_value( $_ ), ' value=', $value{$_}, ' ', $timestamp );
177177
}
178178

179179
return;
180180
}
181181

182-
=item _quote
182+
=item _quote_key
183183
184184
=cut
185185

186-
sub _quote {
186+
sub _quote_key {
187187
my ( $key ) = @_;
188188

189189
$key =~ s/([,=\s])/\\$1/go;
190190

191191
return $key;
192192
}
193193

194+
=item _quote_value
195+
196+
=cut
197+
198+
sub _quote_value {
199+
my ( $key ) = @_;
200+
201+
$key =~ s/([,=\s])/\\$1/go;
202+
203+
if ( $key eq '' ) {
204+
$key = '""';
205+
}
206+
207+
return $key;
208+
}
209+
194210
=back
195211
196212
=head1 AUTHOR

0 commit comments

Comments
 (0)