Onslaught is a Berserker ability that generates Onslaught Stacks. These are generated each time the ability is cast, not per target hit.
Onslaught Stacks are expended when you use a cooldown ability that is not a debuff and is not a summon (the brief cooldowns on abilities such as Albrecht’s Aether Ray are exempt and count as non-cooldown skills). For each stack you have at the time of casting, the ability deals +15% absolute damage (calculated After other bonuses are applied).
Modifiers that give +X Onslaught Stacks increase the maximum stacks the skill can generate and store. If a skill previously did not generate Onslaught Stacks, this enables it to generate them.
Charges are additional uses of the ability. By default, every skill has 1 charge. When a charge is spent, the skill’s cooldown begins. If the skill still has charges left, you can cast it again. Each time the cooldown finishes, a charge of a skill is regained. They are not regained all at once.