====Common Output Module Options====
While each Output Module has it's own distinct set of options, there are a few that are common to all modules.
These are usually used to allow you to filter your data or only output specific //kinds// of information, giving you control over exactly what is recorded.
===Filtering===
The **filter** option allows you to enter a regular expression that is used to filter the **name of the output point**.
For example, if you have the following outputs...
^Output Name^
|Machine.Input.Speed|
|Machine.Input.Temperature|
|Machine.Output.Vibration|
...you can choose to only transmit the //output// values using the regular expression
.*?\.Output\.*?
===Tags===
The source of the output may also **optionally** include certain //tags//. For example, ModelHost will include the **input** tag when transmitting a new input value, and the **output** tag when transmitting an output value.
You can control which tags are accepted or rejected using the **allow** and **deny** parameters.
^Point Name^Tags^
|Machine Speed|Input Decimal|
|Machine Temperature|Input Decimal|
|Machine Vibration|Output Decimal|
|Machine Status|Output Text|
In the above example, you could do the following...
"deny": "text"
//This would prevent any text values from being recorded.//
"allow": "output"
//This would only send **output** data to the output module//
"allow": "output decimal"
//This would only allow **output** data that is also **decimal** data//.
===Timezone and Date Formats===
Most [[event_log|event]]-based output methods have options to correct the UTC dates and time according to a specific time-zone, and to modify the formatting of your dates.
"timezone": "Australia/Sydney",
"dateformat": "%Y-%m-%d %H:%M:%S"
//This would ensure that all dates and times are in Y-M-D h:m:s format, and that the times are in the correct timezone for Sydney, Australia//
===Shared Configuration Files===
The modular output system can use a single configuration file for different types of output. For instance, the output modules for [[key-value|key-value]] data are quite different for those for [[event log|event data]].
You can use the **type** parameter to choose which type of output the module applies to. A type of //value// is for key-value data, and a type of //event// is for event-based data.
[
{
"type": "value",
"method": "prometheus",
"port": 9306
},
{
"type": "event",
"method": "logfile",
"filename": "spikes.log"
}
]
//In the above configuration, events are recorded to a log file while live values are available to Prometheus.//