Hello @Mohammad Ajmal Yazdani ,
at this moment, the IoT Hub only supports manual scaling but this mechanism can be automated.
The code sample is a solution based on this mechanism and is explained here.
This is still the preferred way to do this although you can build a similar solution independently.
An IoT Hub ingests a number of messages (or better: 4Kb chunks) per day and based on that, the scale needs to be set. The number of devices is not a factor.
See here for the amounts of messages per tier.
Next to the regular amount of expected messages, it's also smart to check for expected connection loss.
This means, if devices are able to store messages locally in case of connection loss, these will be send afterwards.
So, if the connection is lost for, say 24 hours, you can expect the double amount of messages the next day (in this example with a TTL set to 1 day on the device).