Can we do the event sampling in forwarder before indexing the event in indexer to reduce the event size ?
Yes, you can. Splunk 9.0 introduces the Ingest Actions feature that allows indexers and heavy forwarders to filter data. See https://docs.splunk.com/Documentation/Splunk/9.0.0/ReleaseNotes/MeetSplunk#What.27s_New_in_9.0 for more.
Thanks @richgalloway : can we do the sampling in forwarder in splunk versions 7.2 or old version
Heavy forwarders and indexers older than 9.0 can do event filtering using props and transforms. In the transform, a regular expression is matched against incoming events. Events that match the regex are sent to the null queue (discarded).
No Universal Forwarder can filter events.
I am looking for sampling like 10:1 or 100:1 ratio in events to filter out events , not looking for simple filter that we can do in heavy forwarder
Since every event is parsed and indexed separately, you can't "count" the events to choose only each 10th or 100th event. But you can try to calculate some value based on a message that will match given value roughly 1/n times in the long run. You could, for example, calculate hash from an event and check its last one or two digits.
But this will not give you perfect sampling ratio. And with badly chosen function your results may be skewed.