185def _metrics_log_to_influx(subparsers: argparse._SubParsersAction) -> None:
186 parser = subparsers.add_parser(
187 "log-to-infux", help="Extract metrics from log files and dump as InfluxDB data."
188 )
189 parser.add_argument(
190 "file", help="Name(s) of the log file to parse, '-' to read from standard input.", nargs="+"
191 )
192 parser.add_argument(
193 "-c",
194 "--context-keys",
195 help=("Names of keys to extract from message context, comma-separated. " "Default: %(default)s "),
196 default="instrument,visit,detector,day_obs",
197 metavar="KEY[,KEY,...]",
198 )
199 parser.add_argument(
200 "-t",
201 "--extra-tags",
202 help="Extra tags and their values, comma-separated.",
203 default="",
204 metavar="TAG=VALUE[,TAG=VALUE...]",
205 )
206 parser.add_argument(
207 "-r",
208 "--replication",
209 help="Log is produced by replication service.",
210 action="store_true",
211 default=False,
212 )
213 parser.add_argument(
214 "-p",
215 "--prefix",
216 help="Additional prefix for metrics names.",
217 default="",
218 )
219 parser.add_argument(
220 "-H",
221 "--no-header",
222 help="Do not add DML header.",
223 action="store_true",
224 default=False,
225 )
226 parser.add_argument(
227 "-d",
228 "--header-database",
229 help="Database name to use for header, default: %(default)s.",
230 default="telegraf",
231 )
232 parser.add_argument(
233 "--fix-row-count",
234 help="Fix incorrect inserted row counts by parsing additional data from logs.",
235 action="store_true",
236 default=False,
237 )
238 parser.set_defaults(method=scripts.metrics_log_to_influx)