How to enable Logging from Boomi Integration solutions to Nodinite
Learn how to perform Asynchronous Logging from Boomi Integration to Nodinite.
You must add a custom logging code to your Boomi Integration components to enable logging business transactions to Nodinite.
Enable self-service Log Views for your business by implementing the following:
Payload logging
Context logging (key-value)
Process execution logging from selected components (any number)
Step by step guide
Follow the steps outlined below.
In your Boomi Integration components, make sure to add custom logging (regardless of the target). Typically this is done using the Reusable generic logging component or other similar frameworks depending on your design, policy and needs
Tip
Make sure your Logging strategy is not vendor-specific. Your Logging logic should be easy to enable/disable and it should be possible to manage the log destinations without redesigning the solutions already in production.
Generic logging in Boomi component.
1. Setup the Log properties structure
From selected components, you will eventually perform Logging. The Logging is individual to each process, and you need a common defined structure to be applied when Logging.
To create this structure, follow the steps below:
- Navigate to the Build tab
- In the main tree, you can either re-use or create a new folder structure for the reusable properties shape
- If you are not re-using an existing folder structure; Create a new folder
Then, click on the New button.
This opens the Create Component modal.
- Select Process Property
- Name the generic log structure (i.e.
LogProperties
) - Select the destination folder
- Click the Create button
Next, you must add the common set of properties required as part of your Logging strategy.
Open the newly created LogProperties
component.
In the Edit Properties page, add the set of properties your logging strategy requires.
List of common properties used for Nodinite Logging
Nodinite Logging requires the following properties. You can either add other properties of interest to the existing definition of a Nodinite JSON Log Event, or add them to the generic key-value collection (Context).
Mandatory | Data Type | Field | Value | Comment | Boomi specific |
---|---|---|---|---|---|
number |
LogAgentValueId | 42 | Who (Log Agents) sent the data | From the groovy script | |
string |
EndPointName | INT101: Receive Hello World Log Events |
Name of Endpoint transport | Set in the flow component where the name of the endpoint is known | |
string |
EndPointUri | C:\DropArea\in |
Uri for Endpoint transport | Set in the flow component where the Uri is known | |
number |
EndPointDirection | 0 | Direction for Endpoint transport | Define the property with a a pre-defines set of allowed values | |
number |
EndPointTypeId | 0 | Type of Endpoint transport | Define as number, and set as defined by Nodinite standard | |
string |
OriginalMessageTypeName | https://nodinite.com/Customers/1.0#Batch |
Message Type Name | Set in the flow component where the message type is known | |
string |
LogDateTime | "2018-05-03T13:37:00.123Z" | Client Log datetime (UTC format) | Set by the generic reusable map described later |
Some of these properties, including the optional payload are set in the mapping stage that comes later in this guide.
- From the Build section; Add a Set Properties shape to your workflow (component).
- Click the Configure button.
- Add the Generic reusable logging component to your workflow (component).
This component is detailed in the next step
2. Convert the logged event to Nodinite format
Next, you must create the Generic reusable logging component. In this guide, we help you create, and write a Nodinite JSON Log Event to the local file system as the intermediate storage.
In your folder structure; Create a new Component, name it
Reusable Generic Logging Component
Set the Start shape properties
Add a Data Process shape to convert the payload to a base64encoded internal
- Name it "
Base64Encode payload
" - Set the Process Type to Custom Scripting
- Set the Script Source to Inline Scripting
- Select Groovy 1.5
- Set the Script to:
import java.util.Properties; import java.io.InputStream; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.TimeZone; for( int i = 0; i < dataContext.getDataCount(); i++ ) { InputStream is = dataContext.getStream(i); Properties props = dataContext.getProperties(i); def inputDataString = is.getText("UTF8").bytes.encodeBase64().toString(); dataContext.storeStream(new ByteArrayInputStream(inputDataString.getBytes()), props); }
- Name it "
Edit the Map
To uniquely identify the Log Agent, you must provide a LogAgentValueId. To separate Logging from the different environments (e.g. Prod, Test, QA); It would be best to allow the LogAgentValueId (mandatory number) to be a configurable part of the Boomi Integration solution.
3. Send Event to intermediate storage
Your intermediate storage should be close to the Boomi Integration installation (i.e. local) and highly available.
Send the Nodinite JSON Log Event to the intermediate storage
- In the sequence; Add a Connector Shape
- Set the Display Name
- Select Connector - in this case the Disk
- Select Send as Action
- Name the Connection and set the destination path (e.g.
C:\temp\boomi\Log Files
) - Name the Operation and set the New Disk Connector Operation properties
4. Configure the Nodinite pickup Service
The Nodinite Pickup Service can fetch the logged events from many intermediate storages, make sure to configure the agent according to the output in your Boomi logging.
5. Enable self-service from within Nodinite
Now that you have data logged inside Nodinite, you can create Role-based Log Views and invite your business to share insights and data from your logging.
Frequently asked questions
Boomi Integration Logging uses the Nodinite Pickup Service.
Additional solutions to common problems and the FAQ for the Nodinite Pickup Service exists in the Pickup Troubleshooting user guide.
How do I get started?
First, read our Asynchronous Logging user guide.
How do I access the Logged data?
Access to logged data for Users is provided by the use of Log Views with Role-based security.
Next Step
Asynchronous Logging
Install Nodinite Pickup Service